我很久以前就有一个疑问...过滤 sql 连接条目的最佳方法是什么...我的意思是,在 WHERE 子句或连接的 ON 上更好?
例如,什么更好?此代码段使用 WHERE
SELECT
customer.users_id AS CustID,
FROM customer
LEFT JOIN visit ON customer.users_id = visit.CustID
WHERE visit.active = 1
或者这另一种方式(过滤器开启):
SELECT
customer.users_id AS CustID,
FROM customer
LEFT JOIN visit ON (customer.users_id = visit.CustID AND visit.active=1)
谢谢。
最佳答案
这取决于情况的类型。这是关于两者的一些文字:-
第一个用作内部联接,没有返回左表中的所有行,包括右表中为 null
的行。 Where 条件返回所有具有 visit 1
的行。意味着它从结果中减少所有这些行,这些行与 1 或 null
行对应到左表
例子:-
custome_id visit
1 1
2 1
第二个返回具有与右表对应的 null
条目的行。
例子:-
custome_id visit
1 1
2 1
3 null
4 null
注意:- 在您的两个语句中,customer_id 不能为 null,因为它只有来自左表的 o/p。
关于mysql - 在 JOIN (sql) 上过滤结果的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38593700/