2012-04-04 12 views
0

2つのテーブルのフィールドを比較して、フィールドの値が同じかどうかを確認します。PHP MYSQL - 同じでない値を返す


- 私は2つのテーブル 'products'と 'wishlist'を持っています。
- どちらのテーブルでも、 'prodId'と 'userId'と同じフィールドと 'title'などの他のフィールドがあります。
- 'wishlist'テーブルには、テーブル 'products '
(例:' products 'では合計10個ですが、同じ行のうち6つだけがテーブル' wishlist 'にあります)

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

どうすればよいですか?
ありがとうございます。

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

JOIN


EDIT:

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

+0

正確に、あなたは何をすべきか比較して平均?あなたが参加を意味するなら、あなたの答えは下にあります。そうでなければ、あなたが比較を意味するものを精緻化します。 – Robert

答えて

1

JOINはあなたの両方のテーブルに一致する値を持つすべてのレコードを返します

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 

FULL OUTER JOIN


EDIT:

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

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

LEFT JOIN

+0

一致しない値を見つけたい場合(一致していないものをすべて表示する)、どうすればよいでしょうか? – qwerty

+0

こんにちは、お返事ありがとうございます。申し訳ありませんが私の質問を更新しました、あなたはそのscnearioで私を助けることができるでしょうか? – qwerty

+0

最後に行った編集を教えていただけますか? – qwerty

関連する問題