[英]mysql select all rows that have same value from id
我有這樣的SQL表
id|server_name|other|data|
__|___________|_____|____
1|server1 |data |data
2|server1 |data |data
3|server2 |data |data
4|server3 |data |data
我試圖找到一個可以給它提供ID的select語句,它將返回與我指定的ID具有相同server_name的所有行。
所以我選擇id = 2,我將從id 1和2獲得行。
我試過了,但它只是返回了所有內容。
SELECT * FROM `backups` WHERE EXISTS(SELECT `server_name` FROM `backups` WHERE `id` = 2);
任何幫助表示贊賞。
SELECT *
FROM backups
WHERE server_name = (SELECT server_name
FROM backups
WHERE id = 2)
要么
SELECT b1.*
FROM backups AS b1
JOIN backups AS b2 ON b1.server_name = b2.server_name
WHERE b2.id = 2
你近了 只需使用=
將每一行的server_name
與子查詢返回的值進行比較:
SELECT * FROM backups
WHERE server_name = (
SELECT server_name
FROM backups
WHERE id = 2)
您也可以通過聯接來實現:
SELECT b2.*
FROM backups b1
JOIN backups b2 ON b2.server_name = b1.server_name
WHERE b1.id = 2
無論哪種方式, server_name
上的索引都將有助於提高性能。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.