我希望能够使用多个键来连接两个表。以下是可能的吗?
SELECT * FROM items LEFT JOIN issues USING (item_id OR order_id)
这是我正在做的简化版本。在重要的情况下使用MySQL 5.1.36。
更新:我希望使用item_id或order_id加入所有问题。因此每个项目可能存在多个问题。我隐约记得关于群组的事情,但我从来没有想过如何将多个记录加入到一个。
很高兴得到这样的东西:
array {
item_id => 1,
item_name => 'test item',
issues => array {
[0] => array { issue_id => 1, issue_type => 'test issue'},
[1] => array { issue_id => 2, issue_type => 'test issue'}
}
}
希望这是有道理的。基本上,作为mysql结果的一部分的问题数组
答案 0 :(得分:2)
与USING
子句一起使用的列的列表应以逗号分隔:
SELECT *
FROM items
LEFT JOIN issues
USING (item_id, order_id)
与:
相同SELECT *
FROM items
LEFT JOIN issues
ON tab1.item_id = tab2.item_id AND tab1.order_id = tab2.order_id
如果您想匹配两个列中的任何一个,您可以使用OR
代替AND
SELECT *
FROM items
LEFT JOIN issues
ON tab1.item_id = tab2.item_id OR tab1.order_id = tab2.order_id
答案 1 :(得分:1)
我会使用联盟:
select * from items left join issues using (item_id)
union all
select * from items left join issues using (order_id)