Php 我很难确定如何修复mySQL查询中的错误
我得到错误1060-重复列名'比萨店',我不知道如何修复它 问题是: 找到提供最便宜的意大利香肠比萨的比萨店。如果是领带,请退回所有最便宜的意大利香肠比萨店Php 我很难确定如何修复mySQL查询中的错误,php,mysql,Php,Mysql,我得到错误1060-重复列名'比萨店',我不知道如何修复它 问题是: 找到提供最便宜的意大利香肠比萨的比萨店。如果是领带,请退回所有最便宜的意大利香肠比萨店 SELECT C.pizzeria FROM (SELECT pizzeria FROM Serves WHERE pizza="pepperoni") C LEFT JOIN (SELECT A.pizzeria, A.price, B.pizzeria, B.price FROM Serves A, Serves B WHERE A.
SELECT C.pizzeria
FROM (SELECT pizzeria FROM Serves WHERE pizza="pepperoni") C
LEFT JOIN
(SELECT A.pizzeria, A.price, B.pizzeria, B.price
FROM Serves A, Serves B
WHERE A.pizza = "pepperoni" and B.pizza="pepperoni" and A.price>B.price) D
ON C.pizzeria = D.pizzeria
WHERE D.pizzeria is NULL
请尝试以下查询:
SELECT C.pizzeria
FROM (SELECT pizzeria FROM Serves WHERE pizza="pepperoni") C
LEFT JOIN
(SELECT A.pizzeria AS apizzeria, A.price, B.pizzeria AS bpizzeria, B.price
FROM Serves A, Serves B
WHERE A.pizza = "pepperoni" and B.pizza="pepperoni" and A.price>B.price) D
ON C.pizzeria = D.apizzeria
WHERE D.pizzeria is NULL;
此行选择A.pizzeria,A.price,B.pizzeria,B.price生成一个中间结果集,如下所示:
pizzeria price pizzeria price
.. .. ... ...
因此,当您使用D.pizzeria时,它会发现对应的列是重复的。事实上,在从A.比萨店和B.比萨店中选择D.比萨店时,它陷入了模棱两可的境地?。因此,请使用列别名消除此问题。请尝试以下查询:
SELECT C.pizzeria
FROM (SELECT pizzeria FROM Serves WHERE pizza="pepperoni") C
LEFT JOIN
(SELECT A.pizzeria AS apizzeria, A.price, B.pizzeria AS bpizzeria, B.price
FROM Serves A, Serves B
WHERE A.pizza = "pepperoni" and B.pizza="pepperoni" and A.price>B.price) D
ON C.pizzeria = D.apizzeria
WHERE D.pizzeria is NULL;
此行选择A.pizzeria,A.price,B.pizzeria,B.price生成一个中间结果集,如下所示:
pizzeria price pizzeria price
.. .. ... ...
因此,当您使用D.pizzeria时,它会发现对应的列是重复的。事实上,在从A.比萨店和B.比萨店中选择D.比萨店时,它陷入了模棱两可的境地?。因此,通过使用列别名来消除这种情况。问题是,在左连接语法下,列出了a.pizzeria和b.pizzeria。然后,该内联视图将被加入到c.pizzeria中,但编译器无法从内联视图中分辨出要加入的pizzeria列
我很好奇你到底想完成什么,因为你让优化器做了大量的工作。问题是,在你的左连接语法下,你列出了a.pizzeria和b.pizzeria。然后,该内联视图将被加入到c.pizzeria中,但编译器无法从内联视图中分辨出要加入的pizzeria列 我很好奇你到底想完成什么,因为你让优化器做了大量的工作