Mysql 合并合并所有行以删除空值 选择travely.id、TIME_格式(ADDTIME(travely.deposition、SEC_TO_TIME(SUM(l1.appeased)),“%H:%i”)作为出发,null作为到达 旅途 内部连接旅程\u日对旅程\u日。旅程=旅程。代码 pattern.code=travely.pattern上的内部连接模式 l1.section=pattern.section和l1.stop=“370023139”上的内部连接链接l1 l2.section=pattern.section和l2.id上的内部连接链接l2
只需对结果集应用聚合函数(min/max)。由于聚合中不包含空值,因此只会得到组合结果:Mysql 合并合并所有行以删除空值 选择travely.id、TIME_格式(ADDTIME(travely.deposition、SEC_TO_TIME(SUM(l1.appeased)),“%H:%i”)作为出发,null作为到达 旅途 内部连接旅程\u日对旅程\u日。旅程=旅程。代码 pattern.code=travely.pattern上的内部连接模式 l1.section=pattern.section和l1.stop=“370023139”上的内部连接链接l1 l2.section=pattern.section和l2.id上的内部连接链接l2,mysql,sql,Mysql,Sql,只需对结果集应用聚合函数(min/max)。由于聚合中不包含空值,因此只会得到组合结果: SELECT journey.id, TIME_FORMAT(ADDTIME(journey.departure, SEC_TO_TIME(SUM(l1.elapsed))), '%H:%i') AS departure, null AS arrival FROM journey INNER JOIN journey_day ON journey_day.journey = journey.code INN
SELECT journey.id, TIME_FORMAT(ADDTIME(journey.departure, SEC_TO_TIME(SUM(l1.elapsed))), '%H:%i') AS departure, null AS arrival
FROM journey
INNER JOIN journey_day ON journey_day.journey = journey.code
INNER JOIN pattern ON pattern.code = journey.pattern
INNER JOIN link l1 ON l1.section = pattern.section AND l1.stop = "370023139"
INNER JOIN link l2 ON l2.section = pattern.section AND l2.id <= l1.id
WHERE journey.service = "11-252-_-y08-1" AND journey_day.day = 1 AND journey.code NOT IN (SELECT journey
FROM journey_non_operation
WHERE "2015-03-01" BETWEEN date_start AND date_end) AND pattern.direction = "outbound"
GROUP BY journey.id
UNION ALL
SELECT journey.id, null AS departure, TIME_FORMAT(ADDTIME(journey.departure, SEC_TO_TIME(SUM(l1.elapsed))), '%H:%i') AS arrival
FROM journey
INNER JOIN journey_day ON journey_day.journey = journey.code
INNER JOIN pattern ON pattern.code = journey.pattern
INNER JOIN link l1 ON l1.section = pattern.section AND l1.stop = "1000DEHS7812"
INNER JOIN link l2 ON l2.section = pattern.section AND l2.id <= l1.id
WHERE journey.service = "11-252-_-y08-1" AND journey_day.day = 1 AND journey.code NOT IN (SELECT journey
FROM journey_non_operation
WHERE "2015-03-01" BETWEEN date_start AND date_end) AND pattern.direction = "outbound"
GROUP BY journey.id
只需对结果集应用聚合函数(最小/最大)。由于聚合中不包含空值,因此只会得到组合结果:
SELECT journey.id, TIME_FORMAT(ADDTIME(journey.departure, SEC_TO_TIME(SUM(l1.elapsed))), '%H:%i') AS departure, null AS arrival
FROM journey
INNER JOIN journey_day ON journey_day.journey = journey.code
INNER JOIN pattern ON pattern.code = journey.pattern
INNER JOIN link l1 ON l1.section = pattern.section AND l1.stop = "370023139"
INNER JOIN link l2 ON l2.section = pattern.section AND l2.id <= l1.id
WHERE journey.service = "11-252-_-y08-1" AND journey_day.day = 1 AND journey.code NOT IN (SELECT journey
FROM journey_non_operation
WHERE "2015-03-01" BETWEEN date_start AND date_end) AND pattern.direction = "outbound"
GROUP BY journey.id
UNION ALL
SELECT journey.id, null AS departure, TIME_FORMAT(ADDTIME(journey.departure, SEC_TO_TIME(SUM(l1.elapsed))), '%H:%i') AS arrival
FROM journey
INNER JOIN journey_day ON journey_day.journey = journey.code
INNER JOIN pattern ON pattern.code = journey.pattern
INNER JOIN link l1 ON l1.section = pattern.section AND l1.stop = "1000DEHS7812"
INNER JOIN link l2 ON l2.section = pattern.section AND l2.id <= l1.id
WHERE journey.service = "11-252-_-y08-1" AND journey_day.day = 1 AND journey.code NOT IN (SELECT journey
FROM journey_non_operation
WHERE "2015-03-01" BETWEEN date_start AND date_end) AND pattern.direction = "outbound"
GROUP BY journey.id
我不知道你们为什么要建立联盟 试着这样做:
select id, min(departure), min(arrival)
from (your query) as q
group by id
选择旅程.id,
时间格式(ADDTIME(旅程.出发,秒到时间(总和(l1.经过)),“%H:%i”)作为出发,
到达时的时间格式(ADDTIME(旅程.出发,秒到秒时间(总和(l2.已用)),“%H:%i”)
旅途
内连接模式
关于pattern.code=travely.pattern
内连接链路l1
在l1.section=pattern.section上
和l1.stop=“370023139”
内连接链路l2
在l2.section=pattern.section上
和l2.stop=“1000DEHS7812”
我不知道你为什么要建立联盟
试着这样做:
select id, min(departure), min(arrival)
from (your query) as q
group by id
选择旅程.id,
时间格式(ADDTIME(旅程.出发,秒到时间(总和(l1.经过)),“%H:%i”)作为出发,
到达时的时间格式(ADDTIME(旅程.出发,秒到秒时间(总和(l2.已用)),“%H:%i”)
旅途
内连接模式
关于pattern.code=travely.pattern
内连接链路l1
在l1.section=pattern.section上
和l1.stop=“370023139”
内连接链路l2
在l2.section=pattern.section上
和l2.stop=“1000DEHS7812”
和l2.id您能发布所需结果吗?@notulysses用可视化的所需结果表更新了问题,您想通过它加入吗?旅行。身份证??还是随机的?:-)请检查我的答案您能发布所需结果吗?@notulysses更新了带有视觉所需结果表的问题您想加入吗?旅行。身份证??还是随机的?:-)请勾选我的答案,勾选你的答案,但你的查询不会返回相同的结果。请注意两个查询上的第二个链接内部联接。这是计算SELECT子句中的值所必需的。什么?以前的查询中忽略了secod链接。试试看。我刚刚用l2.id更新了查询。我尝试了您的查询,但它没有返回所需的结果。是的,它确实合并了它们并删除了NULL
问题,但是您错过了l2.section=pattern.section和l2.id上的内部连接链接l2,这与我从您的查询中删除的内容无关。什么是计数?它现在返回什么?和期望的结果有什么不同?谢谢你的回答,但是你的查询不会返回相同的结果。请注意两个查询上的第二个链接内部联接。这是计算SELECT子句中的值所必需的。什么?以前的查询中忽略了secod链接。试试看。我刚刚用l2.id更新了查询。我尝试了您的查询,但它没有返回所需的结果。是的,它确实合并了它们并删除了NULL
问题,但是您错过了l2.section=pattern.section和l2.id上的内部连接链接l2,这与我从您的查询中删除的内容无关。什么是计数?它现在返回什么?和期望的结果有什么不同?