【发布时间】:2018-09-08 06:48:34
【问题描述】:
我正在尝试使用两个可选子句来使用 MYSQL 的 INNER JOIN。但它似乎并没有返回所有数据。有关如何改进此查询的任何提示?
SELECT *
FROM ImportedContacts t1
INNER JOIN users t2
ON (t1.Emails = t2.email OR
t1.Phones = t2.Phone)
WHERE t1.Username = 'user' AND
NOT t2.email = ''
ORDER BY t2.first_name
LIMIT 60
已编辑
我将标题从“MYSQL INNER JOIN with OR Clause”更改为当前标题,以便有相同问题的人更容易找到。事实证明,这个问题实际上与正在加入的列具有空值或空值有关。接受的答案解释了问题的原因并提供了解决方案。
【问题讨论】:
-
But it doesn't seem to be returning all the data没有实际数据我们无法猜测。您是指电子邮件/电话号码中的一些 NULL 值吗? -
不,我的意思是它遗漏了一些行。
-
哪几行?您知道我们看不到您的实际数据吗?您可以只发布应该返回但您的查询忽略它们的示例数据吗?
-
I don't have the permission to share the actual data我们对实际数据从不感兴趣,只是任何sample data都是实际的“代表”,以便我们准确了解您的问题。 -
@user2993497 请花一些精力来准备重现您的案例的示例数据。一个案例就足够了。文字不会用预期的行为替换样本数据
标签: mysql join null inner-join