gpt4 book ai didi

mysql - 仅选择表中包含两个特定值的项目

转载 作者:行者123 更新时间:2023-11-29 07:55:52 24 4
gpt4 key购买 nike

SELECT DISTINCT(journey.id)
FROM journey
JOIN journey_day ON journey_day.journey = journey.id
JOIN pattern ON pattern.id = journey.pattern
JOIN pattern_link ON pattern_link.section = pattern.section
WHERE pattern.service = :service AND pattern.direction = :direction AND journey_day.day = :day

上面我有一个 MySQL 查询,它应该根据一些变量提取旅程列表。

我现在想做的是添加另外两个可以调整查询的变量。我需要将我要说的内容转换为 SQL 格式,然后将其附加到我当前的查询中,但我不知道该怎么做。

我需要确保 pattern_link 表包含两者 :departure:arrival 值,本质上使其仅拉动包含这两个变量的旅程。

在此示例中,我们讨论的是公交车时刻表,因此理论上我只想选择同时经过 :departure:arrival 公交车站的行程。 pattern_link 表本质上是一个将旅程中的巴士站连接到巴士站的表。另外,值得一提的是,我的意思不仅仅是这两个站点,我的意思是这两个站点位于表中的某个位置。

我该怎么做?

最佳答案

我不完全明白你是如何表达这个问题的。不过,我认为您正在寻找在相应的 pattern_link 中包含出发和到达值的旅程。如果是这样,您可以使用group byhaving来做到这一点:

SELECT j.id
FROM journey j JOIN
journey_day jd
ON jd.journey = j.id JOIN
pattern p
ON p.id = j.pattern JOIN
pattern_link pl
ON pl.section = pattern.section
WHERE p.service = :service AND p.direction = :direction AND jd.day = :day
GROUP BY j.id
HAVING sum(p.busstop = :arrival) > 0 and
sum(p.busstop = :departure) > 0;

我不确定您想要的字段是否在 pattern 表中或 pattern_link 中,但同样的想法成立。

关于mysql - 仅选择表中包含两个特定值的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25189103/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com