0

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

例如
- 我有 2 个表,“产品”和“愿望清单”。
- 在这两个表中,它们具有相同的字段“prodId”和“userId”,以及其他字段,如“title”等。
-“wishlist”表包含表“products”中的一些相同行
(例如 10总共在“产品”中,但只有 6 个相同的行在表“愿望清单”中)

-我想显示表“产品”中与表“愿望清单”不同的字段/行,因此从只显示 4(因此它不显示 6 的重复项),
因此我想在表“产品”中使用字段“prodId”和“userId”,并将其与表中的相同字段进行比较'愿望清单'。

我该怎么做?
谢谢。

4

1 回答 1

1

AJOIN将返回在两个表中具有匹配值的所有记录:

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

左连接

于 2012-04-04T02:43:31.513 回答