我有三张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
答案 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