gpt4 book ai didi

mysql子查询中值出现两次或多次

转载 作者:行者123 更新时间:2023-11-29 10:45:53 25 4
gpt4 key购买 nike

我有两个表如下(MYSQL)

条目表

Event_id |  Horse_id |  Place  
101 101 1
101 102 2
101 201 3
101 301 4
102 201 2
103 201 3
201 101 1
301 301 2
401 102 7

马表

Horse_id    Name  
101 Flash
102 Star
201 Boxer
301 Daisy
401 Snowy

我需要列出两次或更多次获得(1、2或3)名次的马匹的 horse_id 和名称。我能想出的最好的结果是我知道哪个不接近(需要执行子查询)

select horse_tbl.horse_id, horse_tbl.name
from horse_tbl
left join entry_tbl
on horse_tbl.horse_id = entry_tbl.horse_id
where place<4(
select count(horse_id)>1));

任何帮助将不胜感激

最佳答案

您的查询是在正确的轨道上,但不是使用 WHERE子句来检查该位置,您应该使用 GROUP BY以及 HAVING 中的条件聚合子句:

SELECT
h.horse_id,
h.name
FROM horse_tbl h
LEFT JOIN entry_tbl e
ON h.horse_id = e.horse_id
GROUP BY
h.horse_id,
h.name
HAVING SUM(CASE WHEN e.place IN (1, 2, 3) THEN 1 ELSE 0 END) >= 2

输出:

enter image description here

此处演示:

Rextester

关于mysql子查询中值出现两次或多次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44580495/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com