我如何在该“中添加where exists”语句;分组方式;mysql查询?
我有一个查询,它返回表中组内值的范围 现在,我想检查每个组的值“results”是否出现在“pages”列中,并且仅当这些语句为true时,才返回该行 表结构的一个示例:我如何在该“中添加where exists”语句;分组方式;mysql查询?,mysql,Mysql,我有一个查询,它返回表中组内值的范围 现在,我想检查每个组的值“results”是否出现在“pages”列中,并且仅当这些语句为true时,才返回该行 表结构的一个示例: ID pages start_time 1 splash 12 1 view 14 1 comments 16 1 results 18 2 splash 1 2 view 13 2 comments 1
ID pages start_time
1 splash 12
1 view 14
1 comments 16
1 results 18
2 splash 1
2 view 13
2 comments 14
2 comments 15
3 test 2
3 splash 3
3 results 35
3 view 26
在此示例中,应返回以下内容:
ID time_range
1 6
3 33
因为ID=2在列页面中没有行“结果”
我有下面的查询,但没有使附加条件起作用
SELECT MAX(start_time)-MIN(start_time)
FROM mytable
WHERE country="United States"
AND (here should come the if-results-in-pages-exists statements)
GROUP BY my_id;
如何正确添加此条件
SELECT MAX(start_time)-MIN(start_time)
FROM mytable
WHERE country="United States"
AND pages like '%results%'
GROUP BY my_id;
或者
SELECT MAX(start_time)-MIN(start_time)
FROM mytable
WHERE country="United States"
AND my_id IN (select distinct my_id from mytable where pages like '%results%')
GROUP BY my_id;
或者
SELECT MAX(start_time)-MIN(start_time)
FROM mytable
WHERE country="United States"
AND my_id IN (select distinct my_id from mytable where pages like '%results%')
GROUP BY my_id;
以下是我的版本:
SELECT
A.`id`,
MAX(B.`start_time`) - MIN(B.`start_time`)
FROM `whenpages` A
LEFT JOIN `whenpages` B ON
A.`id` = B.`id`
WHERE
A.`pages` = 'results'
GROUP BY
A.`id`
如果需要,将A.pages=
替换为类似A.pages的A.pages。以下是我的版本:
SELECT
A.`id`,
MAX(B.`start_time`) - MIN(B.`start_time`)
FROM `whenpages` A
LEFT JOIN `whenpages` B ON
A.`id` = B.`id`
WHERE
A.`pages` = 'results'
GROUP BY
A.`id`
如果需要,将A.pages=
替换为类似于A.pages的A.pages。能否在表中为相关列提供一些示例行,以及运行查询后所需的输出示例?这会让事情变得更清楚。@EmanuelLainas我加了一个例子,有什么办法吗?也许有趣?作为开始?能否在表中为相关列提供一些示例行,以及运行查询后所需的输出示例?这会让事情变得更清楚。@EmanuelLainas我加了一个例子,有什么办法吗?也许有趣?作为开始?您如何知道第一个查询是正确的结果属于哪个my_id。第二个不是这样,它的性能会更差-我建议从您的答案中删除它。谢谢,但是这些解决方案只会返回包含“results”的行。但是,我想要ID也包含“results”的整组行,请参见上面的示例。你知道怎么做吗?嗨,用户,第二个查询将根据你的需要进行。你如何知道哪个结果属于哪个我的ID?第一个查询是正确的。第二个不是这样,它的性能会更差-我建议从您的答案中删除它。谢谢,但是这些解决方案只会返回包含“results”的行。但是,我想要ID也包含“results”的整组行,请参见上面的示例。关于如何做到这一点有什么想法吗?嗨,用户,第二个查询将根据您的需要进行