當我們在MySQL中需要連接多列值至一列時,我們可以使用UNION ALL語句來實現。以下是一些簡單的實例來說明它的實用性:
SELECT col1 FROM table1 UNION ALL SELECT col2 FROM table2 UNION ALL SELECT col3 FROM table3;
在這個示例中,我們從三個不同的表中選擇了三列并使用UNION ALL語句連接它們。最終結果將包含所有行的第一列,第二列和第三列的值。
但是,當你想要使用多個列的值來連接一個列的時候,你需要采取不同的方法。你可以使用COALESCE函數和CONCAT函數來執行此操作:
SELECT COALESCE(table1.col1, table2.col1, table3.col1) AS 'col_key', CONCAT( IF(table1.col1 IS NOT NULL, CONCAT('T1: ', table1.col1), ''), IF(table2.col1 IS NOT NULL, CONCAT(IF(table1.col1 IS NOT NULL, CONCAT(' | '), ''), 'T2: ', table2.col1), ''), IF(table3.col1 IS NOT NULL, CONCAT(IF(table1.col1 IS NOT NULL OR table2.col1 IS NOT NULL, CONCAT(' | '), ''), 'T3: ', table3.col1), '') ) AS 'col_val' FROM table1 FULL OUTER JOIN table2 ON table1.col2 = table2.col2 FULL OUTER JOIN table3 ON table1.col2 = table3.col2;
In this example, we are connecting three columns from three different tables to one column based on a common key column (col2 in this case). We are using COALESCE function to choose the first non-null value from the three columns and CONCAT function to combine the values into one column. The output of the query will contain two columns: col_key and col_val.
在本例中,我們將三個表中的三列連接到一個基于公共鍵列(此示例中為col2)的列上。我們使用COALESCE函數選擇三列中的第一個非空值和CONCAT函數將值組合到一個列中。查詢的輸出將包含兩列:col_key和col_val
上一篇MySQL多主鍵字段