SQL select 三张表和外键
SQL select with three tables and foreign keys
我有三张表:
字段:
f_id
f_start
f_end
1
10
20
2
15
25
3
5
10
人:
p_id
p_name
1
Roger
2
John
3
Alicia
影响:
id
fk_field
fk_person
1
2
1
2
1
2
3
3
3
而且我想 select 关联日期和名称。像这样
p_name
f_start
f_end
Roger
15
25
John
10
20
Alicia
5
10
我是 SQL 的新手,我不知道是否必须使用 JOIN...谢谢
您必须在相关列上联接所有 3 个表:
SELECT p.p_name, f.f_start, f.f_end
FROM person p
INNER JOIN affect a ON a.fk_person = p.p_id
INNER JOIN field f ON f.f_id = a.fk_field;
根据您的要求,您可能需要 LEFT 而不是 INNER 联接,但对于此示例数据,INNER 联接就可以了。
我有三张表:
字段:
f_id | f_start | f_end |
---|---|---|
1 | 10 | 20 |
2 | 15 | 25 |
3 | 5 | 10 |
人:
p_id | p_name |
---|---|
1 | Roger |
2 | John |
3 | Alicia |
影响:
id | fk_field | fk_person |
---|---|---|
1 | 2 | 1 |
2 | 1 | 2 |
3 | 3 | 3 |
而且我想 select 关联日期和名称。像这样
p_name | f_start | f_end |
---|---|---|
Roger | 15 | 25 |
John | 10 | 20 |
Alicia | 5 | 10 |
我是 SQL 的新手,我不知道是否必须使用 JOIN...谢谢
您必须在相关列上联接所有 3 个表:
SELECT p.p_name, f.f_start, f.f_end
FROM person p
INNER JOIN affect a ON a.fk_person = p.p_id
INNER JOIN field f ON f.f_id = a.fk_field;
根据您的要求,您可能需要 LEFT 而不是 INNER 联接,但对于此示例数据,INNER 联接就可以了。