我有两张桌子:
在每个表格中,我都有一个代表产品ID的ID字段
这些ID(产品ID)是相同的。
我正在尝试编写一个SQL语句,用于标识tblCurrent中存在但不在tblHistory中的ID
...以及另一个标识两个表中存在的ID的语句
我试过了:
SELECT Distinct prodID
FROM tblCurrent
INTERSECT
SELECT histID
FROM tblHistory
任何帮助表示赞赏
答案 0 :(得分:3)
对于tblCurrent
而不是tblHistory
中的ID:
SELECT c.prodId FROM tblCurrent c
LEFT JOIN tblHistory h ON c.prodId = h.histId
WHERE c.prodId IS NULL
对于两者中存在的ID:
SELECT c.prodId FROM tblCurrent c
JOIN tblHistory h ON c.prodId = h.histId
请注意,如果它们确实是ID(唯一),那么您不需要DISTINCT
,因为每个都不会有多行。
答案 1 :(得分:1)
您可以使用NOT IN
和NOT EXISTS
SELECT Distinct prodID
FROM tblCurrent WHERE prodID
NOT IN(
SELECT histID
FROM tblHistory )
SELECT Distinct prodID
FROM tblCurrent WHERE
NOT EXISTS(
SELECT *
FROM tblHistory )
SELECT Distinct prodID
FROM tblCurrent WHERE
NOT EXISTS(
SELECT *
FROM tblHistory WHERE histID = tblCurrent.prodID )