【发布时间】:2012-09-12 21:26:55
【问题描述】:
有没有更好的方法来执行这个查询而不使用嵌套子查询?
-- select all races for jockeys which have multiple regions
select distinct r.id, r.description
from jockeys_races jra inner join races r on r.id = jra.race_id
where jra.jockey_id in (
select jre.jockey_id
from jockeys_regions jre
group by jre.jockey_id
having count(*) > 1
);
骑师可以属于多个地区。骑师可以参加多个比赛。
【问题讨论】:
-
不是我所知道的,尽管我可能会使用“where Exists”语句而不是“where feild IN()”。这只是个人喜好。
-
@FrankThomas 。 . .在 MySQL 中,使用 EXISTS 不仅仅是个人喜好。使用 EXISTS 而不是使用子查询的 IN 可以更好地优化查询。
标签: mysql sql group-by subquery