自然JOIN有两个外键

时间:2015-04-19 16:22:16

标签: mysql select natural-join

我有这两张桌子

id | name |
___________
 1 | John |
 2 | Mike |

id | id_name1 | id_name2
________________________
 1 |     2    |    1
 2 |     1    |  null

第一个表主键是第二个表中的ID我有两个外键ID_NAME1和ID_NAME2,它们引用第一个表中的主键。 使用后

SELECT table1.name, table2.id FROM table1 NATURAL JOIN table 2

我得到了

John 1
John 2
Mike 1
Mike 2

但我想要

John 1
John 2
Mike 2

我做错了什么?

1 个答案:

答案 0 :(得分:1)

你不需要natural join我猜你想要的是:

http://sqlfiddle.com/#!9/c9b1d/7

SELECT table1.name, table2.id
FROM table1
LEFT JOIN table2
ON table1.id = table2.id_name1
  OR table1.id = table2.id_name2
  ORDER BY table1.id,table2.id