gpt4 book ai didi

同一字段上的 SQL 双 SELECT(mysql 或 sqlite3)

转载 作者:行者123 更新时间:2023-11-29 01:25:31 26 4
gpt4 key购买 nike

我有一个无法解决的问题! (sqlite3,但我认为它会与MySql相同)我有那些表格(图片):

alt text http://www.radarkiller.fr/blog/bddprobleme.png

我想找到前往两条不同街道的所有公交线路(包括类型和编号),我从这两条街道获得了 street_id(例如 12 和 14)。

结果应向客户提供城市中从街道 n°12 到街道 n°14 的所有公交线路(ID、类型和号码)(示例)。

就像 Larry Lustig 所说,您可以使用两个邻域外键创建快捷方式。

预先感谢您的帮助!

最佳答案

使用分组依据/计数:

  SELECT t.bus_line_id,
t.bus_line_type,
t.bus_line_number
FROM BUS_LINE t
JOIN LINK_BUS_NEIGBOURHOOD lbn ON lbn.bus_line_id = t.bus_line_id
JOIN LINK_NEIGHBOURHOOD_STREET lns ON lns.neighbourhood_id_ns = lbn.neighbourhood_id_ns
JOIN STREET s ON s.street_id = lns.street_id
WHERE s.street_id IN (12, 14)
GROUP BY t.bus_line_id,
t.bus_line_type,
t.bus_line_number,
s.street_id
HAVING COUNT(DISTINCT s.street_id) = 2

使用 JOIN:

SELECT t.bus_line_id,
t.bus_line_type,
t.bus_line_number
FROM BUS_LINE t
JOIN LINK_BUS_NEIGBOURHOOD lbn ON lbn.bus_line_id = t.bus_line_id
JOIN LINK_NEIGHBOURHOOD_STREET lns ON lns.neighbourhood_id_ns = lbn.neighbourhood_id_ns
JOIN STREET s ON s.street_id = lns.street_id
AND s.steet_id = 12
JOIN STREET s2 ON s2.street_id = lns.street_id
AND s2.steet_id = 14

关于同一字段上的 SQL 双 SELECT(mysql 或 sqlite3),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1541523/

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