2014-11-24 2 views
0

Я пытаюсь взять JOIN из двух таблиц и итоговую таблицу в JOIN с третьей таблицей, но с ее ошибкой бросания, дайте мне знать, что я делаю неправильно здесь -Присоединитесь из двух таблиц, а затем присоединитесь к полученной третьей таблице mysql

SELECT e.id as e_id, e.name as e_name, e.artist_id as e_artist_id, e.event_date as e_date, 
     v.id as v_id, v.name as v_name, v.address as v_address, v.latitude as v_latitude, v.longitude as v_longitude 
FROM events e 
LEFT JOIN venues v 
ON e.venue_id = v.id WHERE v.id = 12 
LEFT JOIN artists a 
ON e.artist_id = a.id 
+1

Какой ошибки он бросает - потому что это как ключ – Strawberry

+0

# 1064 - у вас есть ошибка в вашем SQL синтаксиса; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с «LEFT JOIN artist a ON e.artist_id = a.id LIMIT 0, 25 'в строке 6 – Trialcoder

+2

ГДЕ приходит в конце - хотя, если это LEFT JOIN, тогда это должно быть AND – Strawberry

ответ

1

Вы должны изменить положение WHERE к AND -

SELECT e.id as e_id, e.name as e_name, e.artist_id as e_artist_id, e.event_date as e_date, 
     v.id as v_id, v.name as v_name, v.address as v_address, v.latitude as v_latitude, v.longitude as v_longitude 
FROM events e 
LEFT JOIN venues v 
ON e.venue_id = v.id AND v.id = 12 
LEFT JOIN artists a 
ON e.artist_id = a.id 
+1

Это даст неожиданные результаты - 'WHERE v.id = 12' должен находиться в состоянии' ON'. – Siyual

+0

Вы не можете поместить 'WHERE' в' ON' @Siyual, это вызывает синтаксическую ошибку. Как это дает неожиданные результаты? –

+0

@JayBlanchard - это отрицает «внешнее соединение». Я подозреваю, что OP хочет что-то вроде 'left join venues v на e.venue_id = v.id и v.id = 12' ... – sgeddes

Смежные вопросы