【发布时间】:2021-08-25 06:07:08
【问题描述】:
我有一个显示“Trafic”的表格,这个表格有每辆进出库姆省的车辆的车牌号、始发地和目的地。
| id | CarPelakNumber | FromCity | ToCity |
|---|---|---|---|
| 0 | 00000 | Kerman | Qom |
| 1 | 11111 | Qom | Tehran |
| 2 | 22222 | Ahvaz | Qom |
| 3 | 33333 | Garmsar | Qom |
| 4 | 44444 | Saveh | Qom |
| 5 | 55555 | Karaj | Qom |
| 6 | 66666 | Semnan | Qom |
| 7 | 77777 | Qom | Karaj |
| 8 | 88888 | Kerman | Qom |
| 9 | 99999 | Kerman | Qom |
| 10 | 22222 | Qom | Tehran |
| 11 | 33333 | Qom | Hamedan |
| 12 | 66666 | Qom | Arak |
| 13 | 88888 | Qom | Fars |
| 14 | 99999 | Qom | Yasooj |
下一个表格是“城市”,显示除库姆省以外的其他省份的名称。
| id | City |
|---|---|
| 1 | Tehran |
| 2 | Ahvaz |
| 3 | Garmsar |
| 4 | Saveh |
| 5 | Karaj |
| 6 | Semnan |
| 7 | Hamedan |
| 8 | Kerman |
| 9 | Arak |
| 10 | Fars |
| 11 | Yasooj |
我想找出所有只进入库姆省而没有离开库姆省的汽车。 示例 SQL 代码:
Select * from Trafic
where FromCity in (select City from City) and
ToCity='Qom' and
ToCity not in (select City from City)
| id | CarPelakNumber | FromCity | ToCity |
|---|---|---|---|
| 0 | 00000 | Kerman | Qom |
| 4 | 44444 | Saveh | Qom |
| 5 | 55555 | Karaj | Qom |
我想找到所有刚刚离开库姆省但没有进入的汽车。 示例 SQL 代码为:
Select * from Trafic
where FromCity='Qom' and and
FromCity not in (select City from City) and
ToCity in (select City from City)
| id | CarPelakNumber | FromCity | ToCity |
|---|---|---|---|
| 1 | 11111 | Qom | Tehran |
| 7 | 77777 | Qom | Karaj |
我想找出所有进出库姆省的汽车。 示例 SQL 代码为:
WITH T1 AS
(
Select * from Traffic
where FromCity in (select City from City) and
ToCity='Qom'
)
, T2 as
(
Select * from Traffic
where FromCity='Qom' and
ToCity in (select City from City)
)
select * from T1,T2
where T1.CarPelakNumber=T2.CarPelakNumber
但是上面的代码有问题,我没有给出我需要的输出,它给出了错误的答案。
| id | CarPelakNumber | FromCity | ToCity |
|---|---|---|---|
| 2 | 22222 | Ahvaz | Qom |
| 3 | 33333 | Garmsar | Qom |
| 6 | 66666 | Semnan | Qom |
| 8 | 88888 | Kerman | Qom |
| 9 | 99999 | Kerman | Qom |
| 10 | 22222 | Qom | Tehran |
| 11 | 33333 | Qom | Hamedan |
| 12 | 66666 | Qom | Arak |
| 13 | 88888 | Qom | Fars |
| 14 | 99999 | Qom | Yasooj |
【问题讨论】:
-
你想要的输出是什么?您能否在您的问题中添加此内容
-
您能否提及您的数据库管理系统? Oracle SQL、MSSQL、PostgreSQL 等等。这使我们能够通过使用特定于数据库的函数为您提供更好的答案
标签: sql sql-server