MYSQL子查询选择

时间:2011-09-13 17:41:31

标签: mysql subquery

我遇到子查询问题。此查询显示我需要执行我需要的查询的函数

SELECT *,
open_hour_from - ((open_hour_day - 1) * 24 * 60) AS timeFrom, 
open_hour_to - ((open_hour_day - 1) * 24 * 60) AS timeTo,
GROUP_CONCAT(open_hour_day) AS days
FROM `open_hours` WHERE open_hour_connect_id = 2
GROUP BY timeFrom, timeTo
ORDER BY days

这是两个功能

open_hour_from - ((open_hour_day - 1) * 24 * 60) AS timeFrom, 
open_hour_to - ((open_hour_day - 1) * 24 * 60) AS timeTo,

我知道子查询可能只返回一个值。但是我如何使用timeFrom和timeTo变量?我应该把它放在HAVING中吗?我该怎么做?

SELECT *,
     ( SELECT GROUP_CONCAT(open_hour_day) 
       FROM ` WHERE open_hour_connect_id = 2 
       GROUP BY timeFrom, timeTo ORDER BY days ) 
FROM connections

1 个答案:

答案 0 :(得分:0)

我猜你真的想要像

这样的东西
SELECT c.*, sub.* 
FROM 
  connections c 
  INNER JOIN 
  (  
 SELECT *,
    open_hour_from - ((open_hour_day - 1) * 24 * 60) AS timeFrom, 
    open_hour_to - ((open_hour_day - 1) * 24 * 60) AS timeTo,
    GROUP_CONCAT(open_hour_day) AS days
    FROM `open_hours` WHERE open_hour_connect_id = 2
    GROUP BY timeFrom, timeTo
    ORDER BY days) sub
 ON c.days = sub.days