У меня есть три таблицы: «А», «В» и «С». У меня есть запрос на 'A' и 'B', но я хочу добавить поле, которое сообщает мне, есть ли один или несколько (мне все равно, сколько) 'C', которые имеют внешний ключ к 'A'.
Вот что у меня есть:
SELECT A.A_id, A.col_2, col_3, B.col_2, A.col_4
count(C.id) as C_count
FROM A
JOIN B ON (A.B_id = B.B_id)
LEFT JOIN C ON (A.A_id = C.A_id)
WHERE A.A_id = ?
GROUP BY A.A_id, A.col_2, col_3, B.col_2, A.col_4
ORDER BY CASE WHEN A.col_2 = ?
THEN 0
ELSE 1
END, col_3;
Это кажется немного неэффективным, потому что я должен перечислить все эти поля в GROUP BY
, а также потому, что я рассчитываю, где все, что я действительно хочу, это то, есть ли хотя бы одно совпадение или нет. Можно ли это улучшить?