我怎样才能将B加入A并同时加入B和C?

时间:2013-03-23 01:52:05

标签: mysql database

我有三张A,B,C表。

如何将B加入A并同时将C加入B?

例如,如果我有这些表:订单,产品,用户,我想要这样的查询:

SELECT Product.title, User.username, Order.id
FROM Order
/* relations: */
Order LEFT JOIN Product
Product RIGHT JOIN User
/* with this condition: */
ON Order.ProductID = Product.ID
ON Product.UserID = User.ID

1 个答案:

答案 0 :(得分:5)

我不确定你在问什么,但为了让你的上述语法正常工作,试试这个:

SELECT Product.title, User.username, Order.id
FROM Order
    LEFT JOIN Product
         ON Order.ProductID = Product.ID
    RIGHT JOIN User
         ON Product.UserID = User.ID

根据您的预期结果,我更倾向于使用LEFT JOINs来提高可读性 - 因此,如果您想要所有用户,无论他们是否在产品表或订单表中,那么这都可行:

SELECT U.username, P.title, O.id
FROM User U
    LEFT JOIN Product P
         ON P.UserId = U.Id
    LEFT JOIN Order O
         ON O.ProductID = P.ID