我有一个MySQL数据库表,用于指示数据库中某些条目之间的关系。该表有4列: (表名是:RelationsTable)
id | type | relationId | relationType
1 | customer | 5 | recipt
2 | recipt | 4 | customer
我正在尝试将此表的数据添加到包含客户ID的另一个表中。但由于客户的ID可能同时显示为RelationsTable.id或RelationsTable.relationId,因此我无法使用正常的JOIN。 我该怎么办?
谢谢!
答案 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'