0

2つのテーブルのフィールドを比較して、フィールドの値が同じかどうかを確認したいと思います。

たとえば
、「products」と「wishlist」の2つのテーブルがあります。
-両方のテーブルで、同じフィールド「prodId」と「userId」に加えて、「title」などの他のフィールドがあります。-「wishlist」
テーブルには、テーブル「products」にある同じ行がいくつか含まれています
(例:10合計で「products」にありますが、同じ行の6つだけがテーブル「wishlist」にあります)

-テーブル「wishlist」とは異なるテーブル「products」のフィールド/行を表示したいので、たとえば、 4のみを表示する(したがって、6の重複は表示されません)ので、
これを行うには、テーブル「products」でフィールド「prodId」と「userId」を使用し、これをテーブルの同じフィールドと比較します。 「ウィッシュリスト」。

どうすればいいですか?
ありがとう。

4

1 に答える 1

1

AJOINは、両方のテーブルで値が一致するすべてのレコードを返します。

SELECT *
FROM
    products p
    JOIN wishlist w ON w.userId = p.userId AND w.prodId = p.prodId

加入


編集:

一致しないすべてのレコードを返すには:

SELECT *
FROM
    products p
    FULL OUTER JOIN wishlist w ON w.userId = p.userId AND w.prodId = p.prodId
WHERE
    p.Id IS NULL
    OR w.Id IS NULL

フルアウタージョイン


編集:

productsに一致するものがないレコードを表示するには、 :wishlistを使用します。LEFT JOIN

SELECT *
FROM
    products p
    LEFT JOIN wishlist w ON w.userId = p.userId AND w.prodId = p.prodId
WHERE
    w.Id IS NULL

左参加

于 2012-04-04T02:43:31.513 に答える