Php 我很难确定如何修复mySQL查询中的错误

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.

我得到错误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.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列

我很好奇你到底想完成什么,因为你让优化器做了大量的工作