demon416nds
@demon416nds
Разработчик на чем попало

Возможен ли каскадный select по нескольким параметрам без дублирования вложенного запроса?

с одним параметром выглядит вполне нормально
SELECT * FROM `kz` WHERE `kz_year`=(SELECT `kz_year` from `kz` where `kz_id`=649)

но работающий вариант с несколькими параметрами излишне массивен
SELECT * FROM `kz` WHERE `kz_year`=(SELECT `kz_year` from `kz` where `kz_id`=649) and `kz_pid`=(SELECT `kz_pid` from `kz` where `kz_id`=649)

Возможно ли его записать короче?
  • Вопрос задан
  • 71 просмотр
Решения вопроса 1
@eandr_67
web-программист (*AMP, Go, JavaScript, вёрстка).
В данном случае вложенные запросы вообще не нужны
SELECT kz1.* FROM kz AS kz1
INNER JOIN kz AS kz2 ON kz1.kz_year = kz2.kz_year AND kz1.kz_pid = kz2.kz_pid
WHERE kz2.kz_id = 694

Если kz_id - не уникальное поле, добавить DISTINCT после SELECT.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы