如何编写sql子句,其中列不相等且任何id关联

时间:2018-02-22 19:52:34

标签: sql sql-server-2008-r2

我想设置一个简单的查询,过滤掉包含" A"在ItemID中,但我的问题是我也不想显示来自不同行的任何期刊ID,因为它匹配" A"。我尝试使用谷歌搜索解决方案,但我确信我没有使用正确的关键字来找到它。我正在使用microsoft sql 2008,但我不是数据库管理员所以我不熟悉。我尝试使用distinct,我也试过group by,但在这种情况下它不起作用。

这是我正在使用的表格的简化版本:

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

2 个答案:

答案 0 :(得分:0)

试试这个:

SELECT * 
FROM table_name 
WHERE JournalID 
NOT IN (SELECT JournalID
FROM table_name
WHERE ItemID = 'A')

答案 1 :(得分:0)

这将排除ItemID为' A'以及与JournalID为' A'。

的行所具有相同ItemID的任何行。

SELECT JournalID, ItemID, PrimaryKEY
FROM TABLE
WHERE JournalID NOT IN (Select JournalID FROM TABLE WHERE ItemID = 'A')