2017-07-14 67 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