2017-07-14 62 views
1

sql structure我的sql查詢不工作,根據

SELECT 
    opreator.o_name, 
    city.c_name as dept, 
    city.c_name as destination,route.fare  
FROM opreator 
INNER JOIN route ON opreator.id=route.id 
LEFT OUTER JOIN city ON city.id=route.dep 

我想打印數據

o_name| dep| dest|fare 
+0

什麼是當前的輸出,以及爲什麼你認爲這是錯的? –

+0

當前輸出是o_name | DEP | DEP |票價 – aqib

+0

您有兩次'city.c_name',它自然會給出相同的結果。 – Picard

回答

3

你應該使用兩個使用表的別名

SELECT 
    opreator.o_name, 
    c1.c_name as dep, 
    c2.c_name as destination, 
    route.fare  
    FROM route 
    INNER JOIN opeator on opreator.id=route.id 
    INNER JOIN city as c1 on c1.id = route.dep 
    INNER JOIN city as c2 on c2.id = route.dest 
+0

以前發現了一個別名。 (在位置151的「路線」附近) 以前發現別名。 (附近的 「ID」 157位) – aqib

+0

答案更新失蹤子句firts加入 – scaisEdge

+0

顯示SQL錯誤 – aqib

0

當你在城市加入JOIN兩張桌子的條件應該是WHERE table1.foreign_key = table2.primary_key

您的第一次加入有一個條件WHERE table1.primary_key = table2.primary_key這是沒有意義的。一個表的主鍵與另一個表的主鍵無關。

您還需要加入city表兩次,一次爲dep,再次爲dest

試試這個:

SELECT opreator.o_name, c1.c_name as dept, c2.c_name as destination, route.fare 
FROM route 
JOIN opreator ON route.opreator = opreator.id 
JOIN city c1 ON route.dep = c1.id 
JOIN city c2 ON route.dest = c2.id 
+0

錯誤 SQL查詢:文檔 SELECT opreator.o_name,c1.c_name的部門,c2.c_name作爲目標,route.fare 從路線 JOIN opreator ON route.opreator = opreator.id 加盟同城C1 ON route.dep = c1.id JOIN city c2 ON route.dest = c2.id LIMIT 0,25 – aqib