【发布时间】:2020-03-08 15:29:39
【问题描述】:
给定一个表 members 和一个表 devices,其中每个成员可以有 0 台设备,那么让所有成员至少拥有一个设备的最快方法是什么?
select m.*, md.* from members m
left join (
SELECT count(*) as c, memberId from member_devices d GROUP BY d.memberId
) md ON m.memberId = md.memberId
WHERE md.c > 0
这可行,但似乎真的很慢。
select s.* from members m where
EXISTS (
SELECT 1 FROM member_devices md WHERE m.memberId = md.memberId
)
也可以,而且可能会快一点(?)
有人有经验吗?谢谢!
【问题讨论】:
标签: mysql sql join subquery query-performance