MySQL左键使用key1或key2加入

时间:2010-04-27 12:03:03

标签: mysql

我希望能够使用多个键来连接两个表。以下是可能的吗?

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结果的一部分的问题数组

2 个答案:

答案 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)