0

たぶん私はあまりにも長い間LEFTJOINをしていませんが、私は困惑しています。

これが私のテーブルです:

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 JOINcarriers ON(user_phones.carrier =carriers.carrier)FROMuser_phones'

これが骨の折れる見落としであることは知っていますが、バリエーションが役に立たない(ON句を括弧で囲むなど)ことが機能していません。

どこで滑ってるの?

4

3 に答える 3

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
于 2012-05-23T00:23:52.767 に答える
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フィールドを使用し、それらを保持するように更新して、それに参加することです。HTHcarriersuser_phones.carrierid

于 2012-05-23T00:19:42.393 に答える
0

試す:

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

w3schools - 左結合

于 2012-05-23T00:19:53.503 に答える