我希望能够使用多个键连接两个表。以下是可能的吗?
SELECT * FROM items LEFT JOIN issues USING (item_id OR order_id)
这是我正在做的事情的简化版本。在重要的情况下使用 MySQL 5.1.36。
更新:我希望使用 item_id 或 order_id 合并所有问题。所以每个项目可能有多个问题。我依稀记得一些关于 group by 的事情,但我一直想不出如何将多个记录连接到一个记录。
如果能得到像这样的东西就好了:
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 结果的一部分
最佳答案
与 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
关于MySQL Left Join 使用 key1 或 key2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2720946/