簡體   English   中英

sql:使用單個查詢選擇另一列中具有相同列值的行

[英]sql: select rows which have the same column value in another column with a single query

示例表:

id | value
----------
1  | abc
1  | cb3
1  | dsf
2  | sss
2  | d3

因此,如果輸入為“ cb3”,我想獲取所有ID為1的行,如果輸入為“ sss”,我想獲取所有ID為2的行。這可以通過一個查詢而不是兩個查詢來完成嗎? (第一個查詢是查找ID,第二個查詢帶上找到ID的行)。 另外,一種查詢方法會更快嗎?

先感謝您。

請嘗試以下操作,在其中將'sss'替換為要搜索的值:

select * from table t1
where t1.id in (select id from table t2 where value = 'sss')

請注意, value似乎不是關鍵,因此您可能在結果中得到兩組不同的ID。 這也是我提出t1.id IN (select id ...而不是t1.id = (select id ...

你可以試試這個:

SELECT * 
FROM TABLE my_table 
WHERE id IN (SELECT id 
         FROM TABLE my_table 
         WHERE value = input
         )

您也可以使用inner join來解決它。

SELECT S.* 
FROM dataset AS S 
INNER JOIN dataset AS T 
ON S.id = T.id 
WHERE T.value = 'cb3';

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM