【发布时间】:2019-04-10 02:19:23
【问题描述】:
如何从子查询中的子查询的最顶层父查询中获取列?我必须像变量一样传递它吗?这是我的代码:
SELECT c.in_customer_id,
(
SELECT
group_concat(the_schedule separator '\r\n')
FROM
(
SELECT
concat_ws('\n', 'Route: ', s.route_id, 'Interval: ', s.service_interval, 'Week No.: ', s.week_no, 'Weekdays: ', s.weekdays, 'Start Date: ', s.start_date, 'End Date: ', s.end_date, 'Start Time: ', s.start_time, 'End Time: ', s.end_time, '\n') AS the_schedule
FROM
schedule s
WHERE
s.service_address_id IN
(
SELECT in_customer_address_id
FROM tbl_customer_address a2
WHERE a2.in_customer_id = c.in_customer_id
)
AND s.is_skipped = '0'
GROUP BY
s.service_address_id
) a
)
AS "Schedule"
FROM
tbl_customers c
我得到的响应是“错误代码:1054。'where 子句'中的未知列'c.in_customer_id'”
【问题讨论】:
-
@MatBailie 我只发布了子查询。
-
更重要的是,你投票了吗? ;)
-
是的 - 佛罗里达需要你!
-
你也可以尝试创建一个带有时间表的 CTE 并将其加入到客户表中,我认为它会更容易阅读
-
@MikeTwc - MySQL 标签除外... (MySQL 8 有 CTE,但它仍然相对不常用。)
标签: mysql sql subquery correlated-subquery mysql-error-1054