我想比较2个表中的字段,看看这些字段是否具有相同的值。
例如
- 我有2张桌子,“产品”和“愿望清单”
- 在两个表中,它们具有相同的字段'prodId'和'userId',以及其他字段,如'title'等。
- 'wishlist'表包含表'产品'中的一些相同的行(例如''产品'中总共10个,但只有6个相同的行在表'wishlist'中)
- 我想显示表'产品'中的字段/行,它们与表'wishlist'不同,所以从例如它只显示4(因此它不显示6的重复),所以为了做到这一点,我想在表'产品'中使用字段'prodId'和'userId',并将其与表'wishlist'中的相同字段。
我该怎么办?
感谢。
答案 0 :(得分:1)
JOIN
将返回两个表中具有匹配值的所有记录:
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