2013-09-16 183 views
0

我有一個MySQL數據庫表,它指出了我數據庫中某些條目之間的關係。該表有4列: (表名是:RelationsTable)SQL在同一張表上連接兩個不同的列

id | type | relationId | relationType 
1 | customer | 5 | recipt 
2 | recipt | 4 | customer 

我想這個表中的數據添加到包含客戶ID的另一個表。但由於客戶的ID可能同時出現在RelationsTable.id或RelationsTable.relationId中,因此我無法使用正常的JOIN。 我該怎麼辦?

謝謝!

+3

請給出你要插入到另一張桌子什麼數據的例子嗎? –

+1

請顯示您嘗試過的代碼以及出錯的地方。 – showdev

+0

如果客戶ID同時顯示爲id和relationid哪一個優先?或者你想同時出現? – Edper

回答

0

你只需要鏈接它,試試這個

select * from table1, table2 where table1.customer_id = table2.customer_id; 

如果還是錯誤改變

select * from table1, table2 where table1.customer_id == table2.customer_id; 
+0

雙等號在MySQL中無效:http://dev.mysql.com/doc/refman/4.1/en/comparison -operators.html – showdev

0

你必須加入客戶表兩次,與客戶不同的別名兩列表。

0

我只是猜測在這裏沒有太多的信息從您的文章。

你可能需要這樣:

SELECT RT.id, Cust.Lastname, Cust.Firstname 
FROM RelationsTable RT INNER JOIN Customers Cust 
ON RT.id = Cust.id 
WHERE RT.type = 'customer' 
UNION ALL 
SELECT RT.relationid, Cust.Lastname, Cust.Firstname 
FROM RelationsTable RT INNER JOIN Customers Cust 
ON RT.relationid = Cust.id 
WHERE RT.relationtype = 'customer' 
相關問題