下面的语句过滤掉了多个表中的结果。我不太了解p
之后的tablename
和l
之后的anothertablename
。它们是通用的还是有目的的?SELECT id, title, l.id, username FROM tablename p JOIN anothertablename l ON (l.id = p.id) WHERE p.id='15' LIMIT 1
最佳答案
那叫化名
它只是一个缩写,而不是总是使用完整的表名。
想象一下,如果有两个名为Products_Orders_items
的表和Customers_orders_items
的表(如果两个表都有列id),那么在一个JOIN中您将编写:
SELECT *
FROM Products_Orders_items
INNER JOIN Customers_orders_items
ON Customers_orders_items.id = Products_Orders_items.id
WHERE Customers_orders_items.otherField = 'bla';
使用alias,您可以更容易地阅读:
SELECT *
FROM Products_Orders_items a
INNER JOIN Customers_orders_items b ON a.id = b.id
WHERE b.otherField = 'bla';
在某些情况下,使用派生表时必须使用like,例如:
SELECT *
FROM (
SELECT *
FROM Products_Orders_items a
INNER JOIN Customers_orders_items b ON a.id = b.id
WHERE b.otherField = 'bla'
) a
如果在这里不使用别名,查询将给出一个错误。
关于mysql - 在此SQL语句中,“l”和“p”是什么意思?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20362519/