更新 感谢我最初的问题的所有答案。我现在有另一个与这些查询相关的问题。加入表格后,我想搜索 NULL 结果,按照下面的示例,我想搜索 surname=NULL/surname='',但它返回一个空结果,即使有 2 个未链接的结果。
示例查询:
SELECT table1.*,table2.* FROM table1 LEFT JOIN table2 ON table1.id=table2.id WHERE table2.surname=NULL
这将返回 0。
有任何想法吗?我可以理解为什么它会返回 0 背后的逻辑,但必须有办法让它工作(?)
原始问题: 我在我的问题上找不到任何答案,可能是因为我不知道我应该寻找什么。
我遇到的问题是我想加入 2 个具有共同指标的表,但包含共同指标也不存在的记录。
也许我没有意义,但我会尝试在下面的代码中解释
表格1
id | name
1 | John
2 | Michael
3 | Anna
4 | Sue
表2
id | surname
1 | Doe
2 | Anderson
所以我想要一个像这样输出/绑定表的查询:
table1.id | table1.name | table2.id | table2.surname
1 | John | 1 | Doe
2 | Michael | 2 | Anderson
3 | Anna | NULL | NULL
4 | Sue | NULL | NULL
因此,在有数据的地方合并,在没有数据的地方不要合并(或添加 NULL 值)。table2 的数据总是比 table1 少,所以 table1 可以用作骨骼。vlookup 在 Excel 中完美地做到了这一点,在找不到值的地方返回 N/A 我知道如何使用 PHP 来实现这一点,但我正在尝试加速我的代码,当处理远高于 50k 的记录时,我不想单个查询每一行以获取另一个表列。
我试过 WHERE table1.id=table2.id,但它只在 table2.id 存在的情况下加入它们,我也尝试过 JOIN ON 函数,但它也是一样的。
请帮忙