带有两个外键的自然 JOIN
Natural JOIN with two foreign keys
我有那两个 table
id | name |
___________
1 | John |
2 | Mike |
id | id_name1 | id_name2
________________________
1 | 2 | 1
2 | 1 | null
第一个 tables 主键是第二个 table 我有两个外键 ID_NAME1 和 ID_NAME2 它们从第一个 [=26] 引用主键=].
使用后
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
我做错了什么?
您不需要 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
我有那两个 table
id | name |
___________
1 | John |
2 | Mike |
id | id_name1 | id_name2
________________________
1 | 2 | 1
2 | 1 | null
第一个 tables 主键是第二个 table 我有两个外键 ID_NAME1 和 ID_NAME2 它们从第一个 [=26] 引用主键=]. 使用后
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
我做错了什么?
您不需要 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