@samuser
programmer

Как исправить этот запрос?

Как исправить этот запрос ?

SELECT COUNT(*)
      FROM joiners_tourdate
        JOIN joiners_country on joiners_tourdate.country_id = joiners_country.id
      WHERE joiners_tourdate.artist_id = joiners_artist.id
      AND joiners_tourdate.country_id = 3


Здесь joiners_artist.id не находятся ?
  • Вопрос задан
  • 120 просмотров
Решения вопроса 1
ewgenio
@ewgenio
Всё по чуть чуть
Либо так
SELECT COUNT(*)
FROM joiners_tourdate, joiners_artist
JOIN joiners_country on joiners_tourdate.country_id = joiners_country.id
WHERE joiners_tourdate.artist_id = joiners_artist.id
AND joiners_tourdate.country_id = 3


Либо переделать на join
SELECT COUNT(*)
FROM joiners_tourdate 
JOIN joiners_country on joiners_tourdate.country_id = joiners_country.id
JOIN joiners_artist ON joiners_tourdate.artist_id = joiners_artist.id
WHERE joiners_tourdate.country_id = 3
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
rpsv
@rpsv
делай либо хорошо, либо никак
Потому что у вас его НЕТ?
Добавьте его в JOIN:

SELECT COUNT(*)
FROM joiners_tourdate
INNER JOIN joiners_country on joiners_tourdate.country_id = joiners_country.id
INNER JOIN joiners_artist on joiners_artist.id = joiners_tourdate.artist_id
WHERE joiners_tourdate.country_id = 3
Ответ написан
Комментировать
@d-stream
Готовые решения - не подаю, но...
А что есть в рамках этого запроса joiners_artist.id ? Какой попало id из таблицы joiners_artist?

Как бы указана связка пары таблиц, а в условии вдруг возникает третья... Получается "к напильнику прикреплена ручка, сколько лет машинисту поезда?" -)

Видимо потерялся например вышестоящий select из joiners_artist - тогда все встанет на свои места. Или надо так или иначе присоединить таблицу joiners_artist
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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