我目前有两列用于我的数据库,我试图在第1列中返回第二列中不包含特定值的所有值:
ex:第1列有9位随机值,有时会重复。第2列有4种不同的选择; P1,P2,P3,P4。
我试图仅在第1列中显示第2列中没有P4值的值。如果它们没有P4,那么我希望它们全部显示,但是一旦列1值与P4关联,我不希望显示任何列1值。此过程将继续通过所有第1列值,直到第1列中显示的唯一值是没有与其关联的P4列2值的值。
答案 0 :(得分:2)
你的意思是这样的吗?
SELECT *
FROM YOUR_TABLE
WHERE COLUMN1 NOT IN (
SELECT COLUMN1
FROM YOUR_TABLE
WHERE COLUMN2 = 'P4'
)
答案 1 :(得分:0)
这不会是
SELECT column1 FROM <table> WHERE column2 != 'P4'
答案 2 :(得分:0)
这是一个查询示例,您可以在其中查看集合中的集合 - 即column1值中的column2集合。我更喜欢将group by
和having
用于这些查询:
select column1
from t
group by column1
having sum(case when column2 = 'P4' then 1 else 0 end) = 0
要获取所有值,您将加入原始表:
select t.*
from t join
(select column1
from t
group by column1
having sum(case when column2 = 'P4' then 1 else 0 end) = 0
) c1
on t.column1 = c1.column1