2016-12-09 5 views
0

私はこの2つのmysqlテーブルを持っています。私は3-rdを出力したいと思います。JOINを使用して2つのテーブルからマッピングする

table_names:

eid name 
100 car1 
101 car2 
102 car3 

がtable_fuel:

mid fuel 
100 30 
100 40 
101 50 
100 60 
102 70 

出力:

name fuel 
car1 30 
car1 40 
car2 50 
car1 60 
car3 70 

私が欲しいものは名前を表示するためにe.idとm.idとの間のマッピングであります私が試したことはこれです:

SELECT n.name 
    , f.fuel 
    FROM table_fuel f 
RIGHT 
    JOIN table_names n 
    ON n.eid = f.mid 

しかし、エラー:トークンが一致しません。御時間ありがとうございます。あなたは、私は、単純なLEFTを使用することになり

SELECT table_names.name, 
table_fuel.fuel 
FROM table_fuel 
JOIN table_names 
ON table_names.eid = table_fuel.mid; 
+1

? INNER JOINはここでうまくいくでしょう。あなたが外部結合が必要なときは、LEFT JOINを実行してください! – jarlh

+0

'name'は一部のdbms製品の予約語です。 – jarlh

+0

私はそのクエリがそのエラーを生成できるとは思わない。 –

答えて

0

はこのために、JOIN:

SELECT n.name, f.fuel 
FROM table_names n 
LEFT JOIN table_fuel f ON n.eid = f.mid; 

それは完全なテーブル名よりも、別名を使用することが多く短いです。

0

のようなテーブル間の単純なJOINを必要

0

単に声明に参加しましょ作るために左であなたのtable_fuelを置く:

SELECT a.Name, b.Fuel 
FROM table_fuel b 
LEFT JOIN table_names a 
ON a.eid = b.mid; 
0

を最初にセミコロンを除去することにより、XAMPPのphp.iniファイルとのコメントを解除して下さいトークンのエラーを解決するには:

 session.save_path ="/tmp" 

その後、Apacheを再起動します。

また、クエリも確認してください。 RIGHT JOINのはなぜ

  SELECT n.name 
      , f.fuel 
       FROM table_fuel f 
       JOIN table_name n 
      ON n.eid = f.mid; 

ここでチェックDemo

関連する問題