如何编写 sql 子句,其中列不相等且任何 id 关联
How to write sql clause where column not equal and any id associated
我想设置一个简单的查询来过滤掉 ItemID 中包含 "A" 的任何行,但我的问题是我也不想显示来自不同行的任何期刊 ID,因为它匹配"A"。我尝试使用谷歌搜索解决方案,但我确定我没有使用正确的关键字来找到它。我使用的是 Microsoft sql 2008,但我不是数据库管理员,所以我不太熟悉。我试过使用distinct,也试过group by,但是在这种情况下它不起作用。
这是我正在使用的 table 的简化版本:
JournalID ItemID PrimaryKEY
1 A 1
1 B 2
2 A 3
2 C 4
3 B 5
4 D 6
下面是我想要的样子:
JournalID ItemID PrimaryKEY
3 B 5
4 D 6
试试这个:
SELECT *
FROM table_name
WHERE JournalID
NOT IN (SELECT JournalID
FROM table_name
WHERE ItemID = 'A')
这将排除 ItemID
为 'A' 的任何行,以及与 ItemID
为 [=16] 的行具有相同 JournalID
的任何行=].
SELECT JournalID, ItemID, PrimaryKEY
FROM TABLE
WHERE JournalID NOT IN (Select JournalID FROM TABLE WHERE ItemID = 'A')
我想设置一个简单的查询来过滤掉 ItemID 中包含 "A" 的任何行,但我的问题是我也不想显示来自不同行的任何期刊 ID,因为它匹配"A"。我尝试使用谷歌搜索解决方案,但我确定我没有使用正确的关键字来找到它。我使用的是 Microsoft sql 2008,但我不是数据库管理员,所以我不太熟悉。我试过使用distinct,也试过group by,但是在这种情况下它不起作用。
这是我正在使用的 table 的简化版本:
JournalID ItemID PrimaryKEY
1 A 1
1 B 2
2 A 3
2 C 4
3 B 5
4 D 6
下面是我想要的样子:
JournalID ItemID PrimaryKEY
3 B 5
4 D 6
试试这个:
SELECT *
FROM table_name
WHERE JournalID
NOT IN (SELECT JournalID
FROM table_name
WHERE ItemID = 'A')
这将排除 ItemID
为 'A' 的任何行,以及与 ItemID
为 [=16] 的行具有相同 JournalID
的任何行=].
SELECT JournalID, ItemID, PrimaryKEY
FROM TABLE
WHERE JournalID NOT IN (Select JournalID FROM TABLE WHERE ItemID = 'A')