首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对同一字段(mysql或sqlite3)进行SQL双击选择。

对同一字段(mysql或sqlite3)进行SQL双击选择。
EN

Stack Overflow用户
提问于 2009-10-09 02:23:55
回答 2查看 12.8K关注 0票数 2

我有一个我不能解决的问题!(sqlite3,但我认为它与MySql相同)我有这些表(图):

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

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

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

就像Larry Lustig说的那样,你可以用两个邻居的外键来创建一个捷径。

提前感谢您的帮助!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-10-09 02:41:01

使用GROUP BY/COUNTING:

代码语言:javascript
复制
  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:

代码语言:javascript
复制
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
票数 4
EN

Stack Overflow用户

发布于 2009-10-09 02:43:58

假设您希望在示例结果集中有三个单独的记录,并假设所有"neighborhood_id“列都是FK返回到邻居表,请尝试:

代码语言:javascript
复制
SELECT * 
  FROM bus_line 
 WHERE EXISTS (SELECT * 
                 FROM neighborhood N 
           INNER JOIN link_neighborhood_street S ON N.neighborhood_id = S.neighborhood_id_ns 
                WHERE S.street_id = 12) 
  AND EXISTS (SELECT * 
                FROM neighborhood N 
          INNER JOIN link_neighborhood_street S ON N.neighborhood_id = S.neighborhood_id_ns 
               WHERE S.street_id = 14);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1541523

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档