[英]SQL: How to search two columns within a nested query?
在我的數據庫中,ts.ID 僅出現在 l.origin 列中。 我需要搜索 l.orgin 和 l.destination。 為什么當我查詢 l.origin OR l.destination 時,它會顯示所有帶有 ts.ID 的結果,而不是只顯示帶有連接到 Sheffield 的 ts.ID 的特定結果。 有沒有更簡單的方法來搜索兩列?
SELECT F.name, F.phone
FROM Franchise F
WHERE F.name IN (SELECT C.companyName
FROM company c
WHERE c.routeNumber IN (SELECT c.`number`
FROM Line l
WHERE l.origin OR l.end IN (SELECT ts.ID
FROM TrainStation ts
WHERE ts.description = 'Sheffield' )));
謝謝你的幫助。 我在這方面相當新。
添加到 Chris 的評論中, WHERE l.origin OR l.end IN ...
部分可以通過多種方式解決,包括使用CASE WHEN
塊,每個字段(l.origin 和 l.end)分別針對條件進行測試, 像這樣:
WHERE
(CASE
WHEN l.origin IN (
SELECT ts.ID
FROM TrainStation ts
WHERE ts.description = 'Sheffield')
THEN 1
WHEN l.end IN (
SELECT ts.ID
FROM TrainStation ts
WHERE ts.description = 'Sheffield')
THEN 1
ELSE 0
END
) = 1
;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.