2015-03-19 72 views
-1

即使我的查詢是'成功',只要我執行它,沒有結果產生。SQL沒有結果,但查詢

SELECT p.*, 
     (h.totalCost + e.totalCost + t.totalCost + f.totalCost) as 'Total Package Cost' 
FROM package p 
    INNER JOIN hotels h ON h.hotelId = p.hotelId 
    INNER JOIN excursions e ON e.excursionId = p.excursionId 
    INNER JOIN transport t ON t.transportId = p.transportId 
    INNER JOIN flight f ON f.flightId = p.flightId 
WHERE h.location = 'Spain' 
    AND e.location = h.location 
    AND t.location = h.location 
    AND f.location = h.location 
ORDER BY (h.totalCost + e.totalCost + t.totalCost + f.totalCost) ASC 

有人可以定義問題嗎?謝謝。

+0

由於您沒有顯示您的數據,我只能猜測至少有一家'hotels','excursions','transport'或'flight'沒有'location ='Spain''。 – 2015-03-19 03:18:11

+0

爲什麼要在所有地方加入連接條件,即位置和不同的ID?順便說一下,您可以按「總包成本」進行訂購。 (哪個dbms?,單引號是ANSI SQL中的字符串文字...) – jarlh 2015-03-19 07:58:39

+0

什麼是您正在使用的DBMS? – HGF 2015-03-19 08:00:02

回答

0

不,我們無法定義問題,因爲我們無法看到您的數據以確定是否存在任何與您的查詢匹配的內容。不過,我可以提出一些建議,嘗試解決您的潛在問題。

  1. 刪除所有where子句以查看是否得到任何結果。對不起,如果這返回太多的數據。
  2. 刪除所有相關的表格並一次添加一個表格以查看您是否獲得任何數據。再次,抱歉,如果這返回太多的數據。
  3. 將where子句項逐一放回,以查看可能沒有任何匹配數據的位置。

您可能需要對每個連接執行一些單獨的查詢,以瞭解您使用的on子句是否確實有效。