[英]Select a couple of rows having equal values in one column and different in another
這是我擁有的測試數據庫: http : //sqlfiddle.com/#!2/e501e/1
我想執行一個MySQL查詢,以檢查是否至少有兩行具有不同的USERID列值和相同的NUMBERID列值 。 因此,在此示例中,結果將是:
select count(*)
from test a
join test b
on a.numberid = b.numberid
and a.userid != b.userid
此查詢將返回2 x此類對的數量,因此足以判斷是否存在此類對。
http://sqlfiddle.com/#!2/e501e/14
select x.*
from test x
join (select numberid
from test
where numberid <> userid
group by numberid
having count(*) > 1) y
on x.numberid = y.numberid
where x.numberid <> x.userid
即使編號2在屏幕截圖中用紅色括起來,編號也不會回來。 那是因為它只有一行,其中numberid不等於userid。 在屏幕快照中,如果查看第二行所標識的numberid,則numberid實際上等於userid2。因此,該行不計入您聲明的2+要求。
而numberid 1又回來了,但是由於另一個原因,在sql小提琴上的測試數據中,您還有一個額外的行(1,3),將其與(1,2)相加時,會使numberid 1滿足2+要求。 僅使用(1,1)和(1,2)不能滿足要求,因為只有(1,2)是不同的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.