我已經如圖三個表(deb
,dos
,char
)和我正在尋找一個SQL查詢來獲取result
表如下:如何將多個表連接成一個MySQL?
table: deb
+----+-------------+--------+
| id | label | dos_id |
+----+-------------+--------+
| 1 | right | 1 |
| 2 | left | 2 |
+----+-------------+--------+
table:char
+----+-------------+--------+
| id | name | dos_id |
+----+-------------+--------+
| 1 | jack | 1 |
| 2 | thaw | 1 |
| 3 | lbaz | 2 |
| 4 | amar | 3 |
+----+-------------+--------+
table:dos
+----+-------------+
| id | color |
+----+-------------+
| 1 | black |
| 2 | white |
+----+-------------+
result table
+----+-------------+--------+
| id | color | value |
+----+-------------+--------+
| 1 | black | right |
| 1 | black | jack |
| 1 | black | thaw |
| 2 | white | left |
| 2 | white | lbaz |
| 2 | white | amar |
+----+-------------+--------+
我試圖接合左右,但它沒」工作。
我在找的是每個dos
行我得到相應的char
和deb
其他列中的值。
也許在一個行中選擇查詢可能會有所幫助。我不知道。
請幫助我,謝謝。
我得到這個 「1248 - 每一個派生表必須有其自己的別名」 ,這是我的查詢 SELECT * FROM ( 選擇dos.id爲ID,dos.date_facture AS製作,deb.libelle AS LBL FROM jos_tktransit_dossier和DOS INNER JOIN jos_tktransit_deboure AS DEB ON dos.id = DEB .id_dossier UNION 選擇dos.id爲ID,dos.date_facture AS製作,charg.nom_charge AS NOM FROM jos_tktransit_dossier和DOS INNER JOIN jos_tktransit_charge_assistance AS臨時代辦ON dos.id = charg.id_dossier ) –
這不會工作,因爲你有不同的領域兩個查詢中的名稱。他們必須是一樣的。在我的例子中,兩個查詢都返回(id,color,value),但是註釋中的查詢返回(id,facture,lbl)和(id,facture,nom)。 lbl!= nom,所以UNION不起作用。 – StevieG
謝謝,但有沒有其他解決方案 –