0

車両

+--------------------+--------------+------+-----+---------+
| Field              | Type         | Null | Key | Default | 
+--------------------+--------------+------+-----+---------+
| id                 | int(11)      | NO   | Pk  | NULL    |       
| model              | varchar(35)  | NO   |     | NULL    |            
+--------------------+--------------+------+-----+---------+

情報

+--------------------+--------------+------+-----+---------+
| Field              | Type         | Null | Key | Default | 
+--------------------+--------------+------+-----+---------+
| id                 | int(11)      | NO   | Pk  | NULL    |       
| vehicle_id         | varchar(35)  | NO   | FK  | NULL    |       
| location           | varchar(35)  | NO   |     | NULL    |       
+--------------------+--------------+------+-----+---------+

車軸1

+--------------------+--------------+------+-----+---------+
| Field              | Type         | Null | Key | Default | 
+--------------------+--------------+------+-----+---------+
| id                 | int(11)      | NO   | Pk  | NULL    |       
| vehicle_id         | varchar(35)  | NO   | FK  | NULL    |       
| weight             | varchar(35)  | NO   |     | NULL    |       
+--------------------+--------------+------+-----+---------+

車軸2

+--------------------+--------------+------+-----+---------+
| Field              | Type         | Null | Key | Default | 
+--------------------+--------------+------+-----+---------+
| id                 | int(11)      | NO   | Pk  | NULL    |       
| vehicle_id         | varchar(35)  | NO   | FK  | NULL    |       
| weight             | varchar(35)  | NO   |     | NULL    |       
+--------------------+--------------+------+-----+---------+

共通のVehicle_idを持つすべてのテーブルからすべてのフィールドを返すクエリを作成したいと思います。Vehicle_idは、3つのテーブル(info、axle1、axle 2)のそれぞれで、Vehicleテーブルの主キーへの参照です。誰かが私がそうする方法を説明してもらえますか?複数の結合を使用してみましたが、機能しませんでした。ありがとうございます。

編集:

私が試したクエリは;

SELECT * 
      FROM  Vehicle
      JOIN info, axle1, axle 2
      ON vehicle.id = axle1.vehicle_id 
     AND vehicle.id = axle2.vehicle_id AND vehicle.id = info.vehicle_id 
4

2 に答える 2

2

代わりにこれを試してください:

SELECT *
FROM Vehicle v
INNER JOIN Info   i ON          v.id = i.vehicle_id
INNER JOIN Axle1 a1 ON i.vehicle_id  = a1.vehicle_id
INNER JOIN Axle2 a2 ON a1.vehicle_id = a2.vehicle_id 
于 2012-09-05T13:41:30.850 に答える
0

このリンクを確認してください:mySQLは1つのクエリで複数のテーブルから情報を取得します

各テーブルの識別子を指定するだけでよいので、フィールドを参照するときにどのテーブルについて話しているのかを指定できます。次に、すべてのIDを条件としてリンクして、識別子が一致しないすべての組み合わせを除外するようにしてください。それは次のようになります:

SELECT * FROM Vehicle v, Info i, Axle1 a1, Axle2 a2 WHERE v.id == a1.vehicle_id AND v.id == a2.vehicle_id AND v.id == i.vehicle_id

于 2012-09-05T13:43:19.570 に答える