簡體   English   中英

SQL:如何在嵌套查詢中搜索兩列?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM