【发布时间】:2021-09-09 14:57:00
【问题描述】:
所以我有两张桌子。假设这是表格的结构:
TABLE A | TABLE B |
-----------------------------------------|
ID | div | ID | date | val |
-----------------------------------------|
A | a | A | d1 | 22 |
B | b | B | d2 | 10 |
C | c | C | d3 | 9 |
F | l | F | d1 | 10 |
我想要的是得到这样的结果:
row 1: A, a, null, null
row 2: B, b, d2, 10
row 3: C, c, null, null
row 4: F, l, d1, 10
这是一个左联接,但我只想检索 val = 10 的值。
我正在使用 SQLite。我尝试了许多不同线程的答案,但没有成功。
【问题讨论】:
-
where子句应用于join的结果。在您的情况下,这样的where子句将排除b.val中具有null值的任何行,因为b中没有匹配的行。因此,您需要在联接之前或联接期间过滤表。在连接谓词中添加and b.val = 10是这两个选项中的后者,也是正常的选择。