SQL查询:两个表之间没有保留关系时如何显示NULL

SQL查询:两个表之间没有保留关系时如何显示NULL,sql,join,select,foreign-keys,Sql,Join,Select,Foreign Keys,我的数据库中有两个表: 表A: 身份证件 P1 P2 表B: 身份证件 P3 A_ID,它是表A.ID的外键 假设我的表中有以下数据: +----+----+----+ +----+----+------+ | ID | P1 | P2 | | ID | P3 | A_ID | +----+----+----+ +----+----+------+ | 1 | aa | aa | | B1 | aa | 1

我的数据库中有两个表:

表A:

身份证件 P1 P2 表B:

身份证件 P3 A_ID,它是表A.ID的外键 假设我的表中有以下数据:

+----+----+----+           +----+----+------+
| ID | P1 | P2 |           | ID | P3 | A_ID |
+----+----+----+           +----+----+------+
| 1  | aa | aa |           | B1 | aa |  1   |
+----+----+----+           +----+----+------+
| 2  | bb | bb |
+----+----+----+
正如您所看到的,只有表A的第一个实体与表B的一个实体有关系,因此我想显示选择类似的内容并设置为表A的第二个实体空值:

+----+----+----+----+
| P1 | P2 | P3 | ID |
+----+----+----+----+
| aa | aa | aa | B1 |
+----+----+----+----+
| bb | bb |null|null|
+----+----+----+----+
为了得到这个结果,我需要写哪个查询


提前感谢您的回复。

关系不是单个行之间的关系,而是表之间的关系。 外键是数据库强制执行所述关系的方式

如上所述-您需要左连接查询:

SELECT A.P1, A.P2, B.P3, B.ID
FROM A
LEFT JOIN B
    ON A.ID = B.A_ID

您需要外部联接:左联接b@dnoeth我试过了,但很可能我做错了什么。您可以确切地演示如何执行此操作吗?显示您现有的选择。你可能在错误的地方得了疾病。经验法则:外部表a上的条件添加到WHERE,但内部表b上的条件添加到on,例如,从a.col=b.col和b.col>0上的左连接b,其中a.col>0乐于帮助:-