[英]SQL JOIN with WHERE condition when two rows' values are the same and one row matches to two different rows
[英]SQL: return values when PK equals two specific values in two different rows on the same field
我試圖返回SAME id分別在23和12中的行(這只是一個示例……我有30K記錄)
ID: ASDJKGFJKBQGW Number:23
ID: ASDJKGFJKBQGW Number:12
ID: ASDJKGFJKBQGW Number:43
ID: ASDJKGFJKBQGW Number:67
ID: ASDJKGFJKBQGW Number:32
這樣做: select * from table where Number=23 and Number=12
。
我需要為ID聲明一個變量並執行while循環嗎?
While @ID is the same
select * from table where Number = 23 and Number = 12
謝謝
這應該可以解決問題
select * from table where Number in (23, 12)
要么
select * from table where Number = 23 or Number = 12
編輯
像這樣的東西:
select id from table where number in (23,12)
group by id
having count(*) = 2
如果數字對於每個ID可能出現多次,則可以使用子查詢
select id from
( select distinct id, number from table ) x
where number in (23,12)
group by id
having count(*) = 2
Select * from table1
Where number in (14,23) and id in(
Select id from table1
Where number in (14,23)
Group by id
Having count(distinct number) = 2)
內部子查詢使用Haveing子句,該子句給出確切的行數2。加上不重復的子句,您肯定會得到這些行
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.