2017-02-01 41 views
2

我得到的字段列表 此錯誤 未知列「customers.c_id」當我在桌子上使用FULL JOIN命令爲什麼我收到此錯誤 - 在字段列表中未知列「customers.c_id」

我有兩個表

1 - 2客戶訂單

Host: localhost 
Database: abcd 
    SQL query: SELECT * FROM `customers` LIMIT 0, 30 ; 
Rows: 6 

c_id c_name city pincode 
1 gagan ghaziabad 201005 
2 raman delhi  20200 
3 manish punjab  1
4 vinay jammu  31201 
5 praveen kerala  40001 
6 raghav goa   10200 


Host: localhost 
Database: abcd 
    SQL query: SELECT * FROM `orders` LIMIT 0, 30 ; 
Rows: 4 

orderId c_id orderDate 
1102 5 2014-02-05 
1109 2 2015-01-15 
1012 3 2016-03-10 
1117 7 2017-05-25 

和我的SQL命令是: -

sql command error

錯誤: -

ERROR 1054 <42S22>: Unknown column 'customers.c_id' in 'field list'

+1

MySQL不支持完全連接。 –

+0

你能刪除完整的連接並再次運行嗎? –

回答

1

由於MySQL不支持,你需要用LEFT JOINRIGHT JOINUNION您查詢FULL JOIN

SELECT c.c_id, o.orderId, c.c_name 
FROM customers c 
LEFT JOIN orders o ON c.c_id = o.c_id 
UNION ALL 
SELECT c.c_id, o.orderId, c.c_name 
FROM customers c 
RIGHT JOIN orders o ON c.c_id = o.c_id; 
+0

感謝馬特其工作 –

1

MySQL不支持full join,甚至沒有語法。所以,你的查詢被解釋爲:

SELECT customers.c_id, orders.orderId, customers.c_name 
FROM customers `FULL` INNER JOIN 
    orders 
    ON customers.c_id = orders.c_id; 

因此,該表稱爲customers在查詢中的別名FULLcustomers中沒有列。

我應該補充說,這個查詢不需要FULL JOIN。假設你有兩個表之間合理的外鍵關係,一個LEFT JOIN將得到所有客戶,即使是那些沒有訂單:

SELECT c.c_id, o.orderId, c.c_name 
FROM customers c LEFT JOIN 
    orders o 
    ON c.c_id = o.c_id; 
+0

謝謝你的回答 –

+0

@GaganKumar。 。 。 'LEFT JOIN'真的應該足夠了。 –

相關問題