Mysql 在子查询的何处选择
我有以下疑问:Mysql 在子查询的何处选择,mysql,Mysql,我有以下疑问: SELECT u.*, m.first_name, m.last_name FROM unit u INNER JOIN member m ON m.id = u.member_id WHERE u.id in (SELECT p.id FROM property p WHERE p.member_id = 1 and p.is_deleted = 0) AND u.is_deleted = 0 这并不能产生我想要的。如果我单独运行WH
SELECT u.*, m.first_name, m.last_name
FROM unit u
INNER JOIN member m
ON m.id = u.member_id
WHERE u.id in (SELECT p.id FROM property p
WHERE p.member_id = 1 and p.is_deleted = 0) AND
u.is_deleted = 0
这并不能产生我想要的。如果我单独运行WHERE in part select p.id from property p WHERE p.member_id=1和p.is_deleted=0中的子查询,则返回1,2,3,6,但完整查询似乎仅作为子查询的结果得到1
有人吗
编辑:附带以下结果的屏幕:
1完整的查询结果:
2子查询结果
3单元表
4属性表
这是您的正确查询。你的错误在条款中。检查以下内容是否正确
select u.*, m.first_name, m.last_name
from unit u
inner join member m on m.id = u.member_id
where u.is_deleted = 0
AND u.property_id IN
(select pr.id as pids from property pr where pr.member_id = 1 and pr.is_deleted = 0)
检查屏幕截图的结果。
如果没有一些样本数据和预期结果,我们应该如何修复您的查询?@LelioFaieta我认为不行。您的子查询很好,问题可能在于第二个条件u.is_deleted=0是否其他条件没有返回,因为u.is_deleted=1在您的单位表中,只有4个ID。1,2,3,4. 4是不相关的,因为它的成员id是2。在属性表中,有6个ID。1-6. 5是不相关的,如果删除=1。6不在单位表中。因此,您的查询只与预期的1、2和3匹配。