PHP MYSQL - 返回不相同的值

时间:2012-04-04 02:39:52

标签: mysql compare field

我想比较2个表中的字段,看看这些字段是否具有相同的值。

例如 - 我有2张桌子,“产品”和“愿望清单” - 在两个表中,它们具有相同的字段'prodId'和'userId',以及其他字段,如'title'等。
- 'wishlist'表包含表'产品'中的一些相同的行(例如''产品'中总共10个,但只有6个相同的行在表'wishlist'中)
- 我想显示表'产品'中的字段/行,它们与表'wishlist'不同,所以从例如它只显示4(因此它不显示6的重复),所以为了做到这一点,我想在表'产品'中使用字段'prodId'和'userId',并将其与表'wishlist'中的相同字段。

我该怎么办?
感谢。

1 个答案:

答案 0 :(得分: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