[英]How do I join multiple tables into one with MySQL?
我有三個表( deb
, dos
, char
),並且我正在尋找一個SQL查詢來獲取result
表,如下所示:
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
值。
也許在一行中進行選擇查詢可能會有所幫助。 我不知道。
請幫助我,謝謝。
您需要運行2個單獨的查詢,並將結果組合在一起成為一個結果集。 您可以使用UNION運算符執行以下操作:
SELECT * FROM
(
SELECT dos.id id, dos.color color, deb.label value
FROM dos INNER JOIN deb on dos.id = deb.dos_id
UNION
SELECT dos.id id, dos.color color, char.name value
FROM dos INNER JOIN char on dos.id = char.dos_id
)
ORDER BY id
編輯:
SELECT *
FROM
(
SELECT dos.id AS id, dos.date_facture AS facture, deb.libelle AS lbl, '' AS nom
AS lbl FROM jos_tktransit_dossier dos INNER JOIN jos_tktransit_deboure deb ON dos.id = deb.id_dossier
UNION
SELECT dos.id AS id, dos.date_facture AS facture, '' AS lbl, charg.nom_charge AS nom
FROM jos_tktransit_dossier dos INNER JOIN jos_tktransit_charge_assistance charg ON dos.id = charg.id_dossier
)
也許像這樣:
SELECT dos.id, color, deb.label as value FROM dos, deb WHERE dos_id = dos.id
UNION SELECT dos.id, color, char.name as value FROM dos, char WHERE dos_id = dos.id;
請嘗試以下操作:
(select d.id,d.color,c.name from dos d , char1 c where d.id=c.dos_id) union (select d.id,d.color,e.label from dos d, deb e where d.id= e.dos_id)
這應該輸出以下內容:
ID COLOR NAME
1 black jack
1 black right
1 black thaw
2 white lbaz
2 white left
...但是它沒有以正確的順序顯示值:
+----+-------------+--------+
| id | color | value |
+----+-------------+--------+
| 1 | black | right |
| 1 | black | jack |
| 1 | black | thaw |
| 2 | white | left |
| 2 | white | lbaz |
| *2 | white | amar* |
+----+-------------+--------+
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.