SQL在同一个表上加入两个不同的列

时间:2013-09-16 16:08:03

标签: mysql sql join

我有一个MySQL数据库表,用于指示数据库中某些条目之间的关系。该表有4列: (表名是:RelationsTable)

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

我正在尝试将此表的数据添加到包含客户ID的另一个表中。但由于客户的ID可能同时显示为RelationsTable.id或RelationsTable.relationId,因此我无法使用正常的JOIN。 我该怎么办?

谢谢!

3 个答案:

答案 0 :(得分:0)

你只需要链接它,试试这个

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

如果仍然错误更改为

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

答案 1 :(得分:0)

您必须将customer表两次加入到具有customer表的不同别名的两列中。

答案 2 :(得分: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'