-1

A、B、C の 3 つのテーブルがあります。

A を B と左結合し、同時に B と C を右結合するにはどうすればよいですか?

たとえば、次のテーブルがある場合: Order、Product、User、次のクエリのようになりたい:

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
4

1 に答える 1

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
于 2013-03-23T02:04:42.227 に答える