У меня есть таблица с полями id
(первичный ключ) и fid
. Я хочу получить запись, где id
соответствует определенному значению, а также все связанные записи, которые имеют одинаковое значение fid
.Оператор SQL для условного выбора связанных записей
Я могу это сделать:
SELECT * FROM mytable
WHERE fid = (SELECT TOP 1 fid FROM mytable WHERE id = 'somevalue')
Но я не хочу, чтобы соответствующие записи, если fid
является конкретным значением (в моем случае пустого значения справ).
Есть ли способ сделать это в одном выражении SQL? Я использую SQL Server 2008 R2.
UPDATE:
Глядя на ответы до сих пор я думаю, что, возможно, не спросил мой вопрос четко. id
и fid
никогда не будут равными. LEFT JOIN
может быть тем, что мне нужно, но я немного незнакомец SQL. То, что я надеюсь на это следующие два запроса как один оператор:
SELECT * FROM mytable WHERE id = 'somevalue'
SELECT * FROM mytable WHERE fid =
(SELECT TOP 1 fid FROM mytable
WHERE id = 'somevalue' AND fid != '00000000-0000-0000-0000-000000000000')
не присоединился бы к тому, что вы после? –