[英]Select row based on another row having same id in same table in MySQL
我有一個像這樣的表格視圖:
id | C1 | C2 |
---+------+-----+
1 | pat | 190 |
1 | pat1 | 191 |
1 | A5 | 302 |
2 | pet | 190 |
2 | pet1 | 191 |
2 | A5 | 302 |
3 | pit | 190 |
3 | pit1 | 191 |
3 | A6 | 302 |
想要得到:
id | C1 | C2 |
---+------+-----+
1 | pat | 190 |
2 | pet | 190 |
換句話說,返回ID,其中C2 = 190,其中表中其他位置的相同ID是A5。
嘗試了幾種LEFT JOIN方法,但沒有任何進展。 請幫忙。 謝謝
您需要存在:
select t.*
from tablename t
where c2 = 190
and exists (
select 1 from tablename where id = t.id and c1 = 'A5'
)
參見演示 。
結果:
| id | C1 | C2 |
| --- | --- | --- |
| 1 | pat | 190 |
| 2 | pet | 190 |
您可以使用EXISTS
來檢查ID是否存在c1 = 'A5'
的行。
SELECT *
FROM t t1
WHERE t1.c2 = 190
AND EXISTS (SELECT *
FROM t t2
WHERE t2.id = t1.id
AND t2.c1 = 'A5');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.