2013-12-10 42 views
0

查詢問題,它的工作原理,並沒有提供任何錯誤信息,但它並沒有顯示我想要的。 我想列出所有被誰在21港灣道分行工作人員處理的船,朴茨茅斯查詢問題,沒有錯誤,但它不顯示任何東西

這裏是我的查詢的SQL代碼: -

SELECT boatId, address, city, postcode, type, rooms, price 
FROM BoatsForRent 
WHERE staffId IN (SELECT staffId 
       FROM Staff 
       WHERE branchId = (SELECT branchId 
         FROM Branch 
         WHERE address= '21 Harbour Road')) 

所有幫助表示讚賞:)

+0

嘗試執行您的查詢分解。 – Aditya

回答

1

語法沒問題,肯定是一個邏輯問題。嘗試從最嵌套的地方開始運行每個子查詢以獲取正在返回的內容。如果您需要進一步的幫助,我建議使用SQL fiddler,創建示例數據,嘗試一下並再次調用。 http://sqlfiddle.com/

+0

好的,謝謝你的幫助:) – user3072131

1

試着改變你的

WHERE branchID =(選擇....

WHERE branchID IN(選擇....

,等價測試通常在兩列你試圖將一列中的平等值應用到一個SELECT語句中...... IN是你正在測試合格的人員的正確位置

此外,這可能是與JOIN的如

SELECT 
     bfr.boatId, 
     bfr.address, 
     bfr.city, 
     bfr.postcode, 
     bfr.type, 
     bfr.rooms, 
     bfr.price 
    FROM 
     BoatsForRent bfr 
     JOIN staff s 
      on bfr.staffID = s.staffID 
      JOIN Branch b 
       on s.branchID = b.branchID 
       AND b.address LIKE '21 Harbour Road%' 

COMMENT反饋...

由於上述不工作,建立反向查詢寫......一步一個時間,並申請任何未來的查詢。把它們分成小塊,直到找到丟失/不匹配元素的罪魁禍首。

select 
     b.branchID 
    from 
     Branch b 
    where 
     b.address LIKE '21 Harbour Road%' 

如果失敗,它是一個類型 - 鄰,或者它本來應該「路」與「路」,拼寫,間距,大寫/小寫?一個是解決了,現在那個辦公室

檢查人員如果返回任何記錄,那麼有沒有工作人員工作人員與有問題的分支中列出有關。如果沒有在分支機構上市,它顯然不會返回船隻租賃記錄。現在,添加船出租...

select 
     b.branchID, 
     s.staffID, 
     bfr.boatId, 
     bfr.address, 
     bfr.city, 
     bfr.postcode, 
     bfr.type, 
     bfr.rooms, 
     bfr.price 
    from 
     Branch b 
     JOIN staff s 
      on b.branchID = s.branchID 
      JOIN BoatsForRent bfr 
       on s.staffID = bfr.staffID 
    where 
     b.address LIKE '21 Harbour Road%' 

如果仍然失敗,然後刪除WHERE子句,並獲得租金ALL船,然後只需添加一個

ORDER BY b.address 

,看看所有的船隻與......有關當在SQL中年輕時可能會導致問題...有時需要緩慢的步驟。

評論反饋。

通過看你的修訂後,我現在看到你的地址包括「朴茨茅斯」,讓您的查詢就會失敗作爲

address = '21 Harbour Road' 

是不一樣的

address = '21 Harbour Road, Portsmouth' 

我已經改爲

address LIKE '21 Harbour Road%' 

的「%」就像是一個外卡,所以只要在地址S與'21港灣道'的TTS將符合資格。

+0

仍然不會返回任何東西。謝謝 – user3072131

+0

@ user3072131,請參閱修訂後的答案。 – DRapp

+0

@ user3072131,請參閱我的修訂答案...平等與喜歡,因爲你現在有「,朴茨茅斯」作爲位置的一部分。 – DRapp

相關問題