例如:
RouteID StopName 1 stop_1 1 stop_2 1 stop_3 2 stop_1 2 stop_2 3 stop_4 4 stop_5
我想选择一个名为'stop_1'的路线,我希望结果如下:
RouteID StopName 1 stop_1 1 stop_2 1 stop_3 2 stop_1 2 stop_2
===============================================
修改
表RouteID
中的Route
怎么样?
而StopName
来自表格Stop
?实际上,上表是他们的关系表。
先谢谢!
答案 0 :(得分:1)
您的修改新答案
同样,假设routes表名为Routes
,并且您的关系表名为RouteStops
。
SELECT * FROM Routes r
JOIN RouteStops rs ON rs.RouteID = r.RouteID
WHERE rs.StopName = 'stop_1'
旧答案:
为了举例,我假设你的表名是Routes
SELECT * FROM Routes r
JOIN Routes r2 ON r.RouteID = r2.RouteID
WHERE r2.StopName = 'stop_1'
每当路由包含stop_1
然后列出所有路由条目时,我基本上都会自己加入表。
答案 1 :(得分:0)
您可以使用内部查询来选择路径:
select r.RouteID, s.StopName from route r
inner join stop s on r.StopID = s.StopID
where RouteID in
(select t1.RouteID from route t1
where exists (select * from stop s2 where t1.StopID = s2.StopID and s2.StopName = 'stop_1'))
order by r.RouteID, s.StopName
答案 2 :(得分:0)
新答案:
假设您希望从预期结果中获取与stop_1共享相同RouteID
的行,我将执行以下操作:
SELECT * FROM YOUR_TABLE_NAME
WHERE RouteID IN
(
SELECT
RouteID
FROM YOUR_TABLE_NAME
WHERE StopName = 'stop_1'
)
旧答案:IGNORE,KEPT仅仅是评论
在oracle语法中,您可以使用Sub String函数。它需要第一个输入你想要使用的字符串,第二个是起始位置,最后一个是长度,所以1 -----------是12个字符长,语句将是以下< / p>
substr(your_column, 12, LENGTH(your_column) - 12)
现在可以使用以下逻辑:
SELECT
Your desired values to get
FROM
(
SELECT
substr(your_column, 1, 1) AS ID, substr(your_column, 12, LENGTH(your_column) - 12) AS VALUE
FROM YOUR TABLE
)
答案 3 :(得分:0)
试试这个
SELECT ROUTID
FROM Routes R
JOIN Stop S ON R.RouteID = S.RouteID
WHERE S.StopName IN ('stop_1 ','stop_2','stop_3')