MySQL的多關(guān)聯(lián)一個(gè)表操作,可以用多種方式實(shí)現(xiàn),以下是其中的兩種方法:
1. 使用多重LEFT JOIN
SELECT * FROM table1 LEFT JOIN table2 ON table1.id = table2.table1_id LEFT JOIN table2 AS table3 ON table1.id = table3.table1_id
這個(gè)查詢語句中,使用了兩個(gè)LEFT JOIN,將table1與table2、table3進(jìn)行關(guān)聯(lián)。通過使用AS關(guān)鍵字,可以對(duì)同一個(gè)表進(jìn)行多次關(guān)聯(lián)。這種方法的優(yōu)點(diǎn)是非常靈活,可以關(guān)聯(lián)多個(gè)表。缺點(diǎn)是語句比較冗長(zhǎng),不容易理解。
2. 使用子查詢
SELECT * FROM table1 LEFT JOIN ( SELECT * FROM table2 UNION ALL SELECT * FROM table3 ) AS sub_table ON table1.id = sub_table.table1_id
這個(gè)查詢語句使用了一個(gè)子查詢,將table2和table3合并成一個(gè)子表。然后再將子表與table1進(jìn)行關(guān)聯(lián)。
這種方法的優(yōu)點(diǎn)是語句較短,易于理解。缺點(diǎn)是只能關(guān)聯(lián)兩個(gè)表。