我在mysql中有2个表,一个是用户,一个是项目
table1用户
id name
----------
1 Peter
2 Roy
3 Mary
table2 item
id name owner1 owner2
1 pen 1 2
2 shoes 2 3
每个项目都有2个所有者,用户ID将存储在owner1和owner2中。 现在我想在table2中获取所有数据时选择table2中所有者的名称,所以我想两次选择行(名称)来获取名称。
我尝试使用join语句编写sql语句,但它不起作用。
在这种情况下如何编写sql语句?
我想要的结果列表
答案 0 :(得分:1)
SELECT i.id
, i.name
, u1.name owner1
, u2.name owner2
FROM item i
JOIN user u1
ON u1.id = i.owner1
JOIN user u2
ON u2.id = i.owner2;
答案 1 :(得分:0)
选择项目'pen'的2个所有者名称:
SELECT name FROM user WHERE id=1 or id=2;
答案 2 :(得分:0)
你不是很清楚你想要什么结果,我假设你想要项目,然后是同一行上每个用户的名字,你可以为每个所有者创建两个连接:
SELECT item.id, item.name, user_one.name as owner1, user_two.name as owner2
FROM item
LEFT JOIN user AS user_one ON (user_one.id = item.owner1)
LEFT JOIN user AS user_two ON (user_two.id = item.owner2)
答案 3 :(得分:0)
您可以使用两次连接到用户表: SELECT item.name,owner1.name,owner2.name 来自物品 JOIN用户owner1 ON item.owner1 = owner1.id JOIN user owner2 ON item.owner2 = owner2.id