gpt4 book ai didi

mysql - SQL 匹配列与同一个表中的另一个列,IN 语句不起作用

转载 作者:行者123 更新时间:2023-11-29 22:48:53 24 4
gpt4 key购买 nike

我正在尝试进行 SQL 查询。我对 SQL 还很陌生,也许有人可以给我一些指导,或者让我知道这是否可能。

请注意,我已经阅读了 IN、ALL、INNER JOIN 等内容,但仍然无法得到正确的查询。我花了几个小时试图找到解决方案。

这些是我的表格列:

+-----------+---------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+---------------+------+-----+---------+-------+
| route | varchar(100) | NO | PRI | NULL | |
| stopID | varchar(5) | NO | PRI | NULL | |
| stopName | varchar(100) | NO | | NULL | |
| Latitude | float(10,6) | YES | | NULL | |
| Longitude | float(10,6) | YES | | NULL | |
| timeList | varchar(1000) | NO | | NULL | |
| day | varchar(5) | NO | PRI | NULL | |
+-----------+---------------+------+-----+---------+-------+

我需要 stopId 和 stopNames,其中 stopName 与具有不同 stopID 的另一个 stopName 匹配,并且 day='Week' (否则,由于存在周、周六、周日,因此总共会返回 3 个结果。)

| 16    | 1639   | MYUNIQUESTOPNAME  |   43.514000 |  -80.199600 | (a really long list of times) | Week  |
| 5 | 0530 | MYUNIQUESTOPNAME | 43.514000 | -80.199600 | (a really long list of times) | Week |

SELECT stopID,stopName FROM Routes WHERE stopName='MYUNIQUESTOPNAME' AND day='Week';
+--------+---------------------------+
| stopID | stopName |
+--------+---------------------------+
| 1612 | MYUNIQUESTOPNAME |
| 1639 | MYUNIQUESTOPNAME |
| 0530 | MYUNIQUESTOPNAME |
+--------+---------------------------+

给了我我想要的东西,但这只是一站,而且这样做,我必须手动完成。有很多站。其次,我想要所有不匹配的 ID 和名称(对于巴士路线来说是唯一的)。

SELECT stopID,stopName FROM Routes WHERE stopName IN (SELECT stopName FROM Routes WHERE day='Week') AND day='Week';

以上内容并没有给我我想要的。我所有的搜索都表明它是...我做错了什么...?

mysql版本是5.5.41-0+wheezy1

最佳答案

对列 (stopName) 上的表(路线)进行自联接,然后获取 day=week 和 stopIds 不相同的所有结果。这将为您提供第一个查询的答案

Select unq.stopId, unq.stopName from Routes unq join Routes other on other.stopName=unq.stopName where unq.stopId!= other.stopId and unq.day = 'Week'

对于第二个,您只需要那些唯一的记录,请根据停靠点名称进行分组,然后选择分组结果仅产生一条记录的记录

Select unq.stopId, unq.stopName from Routes unq group by unq.stopName having count(*) = 1

关于mysql - SQL 匹配列与同一个表中的另一个列,IN 语句不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28977991/

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