我有这个查询
select delivery_first_week_repo.type, delivery_first_week_repo.from_sale, delivery_week_repo.from_sale
from delivery_first_week_repo
LEFT JOIN delivery_week_repo on delivery_first_week_repo.type = delivery_week_repo.type
where delivery_first_week_repo.week_day = 'Tuesday'
and delivery_week_repo.week_day = 'Tuesday'
在delivery_first_week_repo
中,有一些字符串的类型不在第二个表中。但它们不会根据要求显示。
当第二个表中没有匹配的行时,第二个表中的列在联接中将为 null。因此,对于这些行delivery_week_repo.week_day = 'Tuesday'
永远不会如此。
第二个表的条件应放入ON
条款,而不是WHERE
条款。
select delivery_first_week_repo.type, delivery_first_week_repo.from_sale, delivery_week_repo.from_sale
from delivery_first_week_repo
LEFT JOIN delivery_week_repo on delivery_first_week_repo.type = delivery_week_repo.type
and delivery_week_repo.week_day = 'Tuesday'
where delivery_first_week_repo.week_day = 'Tuesday'
这是因为 LEFT JOIN 类型。
使用内部联接将为您提供匹配的结果
select delivery_first_week_repo.type,
delivery_first_week_repo.from_sale, delivery_week_repo.from_sale
from delivery_first_week_repo
INNER JOIN delivery_week_repo on delivery_first_week_repo.type =
delivery_week_repo.type
where delivery_first_week_repo.week_day = 'Tuesday'
and delivery_week_repo.week_day = 'Tuesday'