2012-05-23 3 views
0

Возможно, я просто не сделал LEFT JOIN слишком долго, но я озадачен.MySQL Left Join возвращает ошибку

Вот мои таблицы:

Table: user_phones 

user phone  carrier 
---------------------------- 
danny 5045551234 Verizon 
mom  5551234567 T-Mob 
tony 5121234567 T-Mob 

Table carriers 

carrier email_exchange 
-------------------------- 
Verizon vtext.com 
T-Mob  tmomail.net 

А вот мой запрос:

SELECT user, CONCAT(phone, '@', email_exchange) AS sms 
LEFT JOIN carriers ON (user_phones.carrier = carriers.carrier) 
FROM user_phones 

И я получаю обратно:

«LEFT JOIN носители ON (user_phones.carrier = несущие. несущая) FROM user_phones '

Я знаю, что это надзор над головной болью, но варианты не помогают (помещая ON в круглые скобки и т. Д.) Не работает.

Где я могу ускользнуть?

+1

Я думаю, что вам нужно * FROM * до * LEFT JOIN * – pd40

+0

Как отмечено ниже, мой ум подорвал прокладку и я сбивал с толку 'FROM' и' WHERE'. Сказал вам, что это был прострел. – Anthony

+0

«Ошибка между клавиатурой и стулом». Мы все были там. – Malvolio

ответ

3

Вы пропустили FROM user_phones

SELECT a.`user`, 
     CONCAT(a.`phone`, '@', b.`email_exchange`) AS sms 
FROM user_phones a LEFT JOIN carriers b 
     ON a.carrier = b.carrier 
1

Поместите свой пункт FROM перед вашим LEFT JOIN

SELECT `user`, CONCAT(phone, '@', email_exchange) AS sms 
FROM user_phones LEFT JOIN carriers ON user_phones.carrier = carriers.carrier 

минор предложение было бы использовать автоматическое приращение id поле в carriers таблице, обновит user_phones.carrier провести эти id с, и присоединиться к по этому вопросу. НТН

0

Try:

SELECT user, CONCAT(phone, '@', email_exchange) AS sms 
FROM user_phones 
LEFT JOIN carriers ON (user_phones.carrier = carriers.carrier) 

w3schools - Left Join

+0

Это всегда так? Ввод левого соединения после этого? Почему я чувствую, что я сделал это наоборот? – Anthony

+0

Да, вам нужно указать, что, я думаю, вы могли бы назвать «базовую» таблицу или отправную точку. – Seth

+0

Хорошо, это действительно было давно, так как я сделал этот простой запрос. Я получал мой «ОТ» в замешательстве с моим «ГДЕ». Пусть начинается смех. – Anthony