2012-04-04 106 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