我如何在该“中添加where exists”语句;分组方式;mysql查询?

我如何在该“中添加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

我有一个查询,它返回表中组内值的范围

现在,我想检查每个组的值“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 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”的整组行,请参见上面的示例。关于如何做到这一点有什么想法吗?嗨,用户,第二个查询将根据您的需要进行