2012-04-04 187 views
0

我想比較兩個表中的字段以查看這些字段是否具有相同的值。PHP MYSQL - 返回不相同的值

例如,
- 我有2個表,'產品'和'願望清單'。
- 在這兩個表中,它們具有相同的字段'prodId'和'userId',以及其他字段,例如「標題」等。
- 'wishlist'表包含與表'產品中的某些行相同'
(例如,'產品'共有10個,但是隻有6個相同行在'wishlist'中)

- 我想顯示錶'產品'中與表'願望清單不同的字段/行',所以從例如它只會顯示4(所以它不顯示重複的6),
所以要做到這一點,我想在表'產品'中使用字段的'prodId'和'userId',並將其與相同的字段進行比較在表'願望清單'中。

我該怎麼做?
謝謝。

+0

究竟你意思是比較?如果你的意思是加入,那麼你的答案在下面,否則詳細說明你的意思是比較。 – Robert 2012-04-04 03:12:06

回答

1

一個JOIN將返回具有匹配值兩個表中的所有記錄:

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

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


編輯:

要顯示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 

LEFT JOIN

+0

如果您想查找不匹配的值(顯示不匹配的所有內容),您將如何執行此操作? – qwerty 2012-04-04 03:15:00

+0

嗨,感謝您的回答;對不起,我已經更新了我的問題,請問你能幫助我解決這個問題嗎? – qwerty 2012-04-04 06:14:19

+0

可以,你向我解釋你做的最後一個編輯? – qwerty 2012-04-05 00:02:07