Mysql 多重联接上on子句中的未知列
我试图通过将表Customer与已经连接的BuyVehicle&Vehicle表连接起来,以获得成对的匹配列,我给了该表别名“t”。如果我在第一行中分配了别名,p1.SSN和p2.SSN将如何跟随未知列Mysql 多重联接上on子句中的未知列,mysql,sql,join,Mysql,Sql,Join,我试图通过将表Customer与已经连接的BuyVehicle&Vehicle表连接起来,以获得成对的匹配列,我给了该表别名“t”。如果我在第一行中分配了别名,p1.SSN和p2.SSN将如何跟随未知列 SELECT p1.SSN, p2.SSN FROM Customer AS p1, Customer AS p2 INNER JOIN (SELECT BVSSN, BVVin, Vin FROM CarPurchase INNER JOIN Car ON BVVin = Vin) AS
SELECT p1.SSN, p2.SSN FROM Customer AS p1, Customer AS p2
INNER JOIN (SELECT BVSSN, BVVin, Vin FROM CarPurchase INNER JOIN Car ON BVVin = Vin)
AS t ON p1.SSN = BVSSN & p2.SSN = BVSSN
WHERE p1.SSN < p2.SSN AND //matching columns comparisons yet to be added;
错误1054 42S22:“on子句”中的未知列“p1.SSN”
什么是&-没有那样的SQL。。改为和
这是不正确的
选择BVSSN,BVVin,从BVVin=Vin上的CarPurchase内部连接车辆中选择Vin
从CarPurchase上的CarPurchase内部连接车辆中选择CarPurchase.BVSSN、Car.BVVin、Car.Vin
else use alises问题在于不同类型的联接混合在一起。MySQL无法识别p1表,因为它不是连接的一部分。下面应该解决这个问题:
SELECT p1.SSN, p2.SSN
FROM Customer AS p1 cross join
Customer AS p2 INNER JOIN
(SELECT BVSSN, BVVin, Vin
FROM CarPurchase INNER JOIN
Car
ON BVVin = Vin
) AS t
ON p1.SSN = BVSSN and p2.SSN = BVSSN
WHERE p1.SSN < p2.SSN AND //matching columns comparisons yet to be added;
1.你没有分配任何东西。如果mysql说没有这样的专栏,那么就没有这样的专栏2不是您所想的-您需要使用并且我已经解决了这些问题,但是当Customer表有SSN列时,我仍然收到列p1.SSN错误。如果mysql说没有这样的列,那么就没有这样的列mysql>描述Customer;|SSN | int11 | NO | PRI | NULL | | | | | | | | | | | | | | | |我已经这样做了,这。。。。如果你不想帮忙,请停止回应。我不想把这变成一个讨论。很好地理解了&但是我没有添加“table”。列,因为每个表都有唯一的列名。但是错误列p1.SSN仍然是一个问题。谢谢!这让我很烦恼。
SELECT p1.SSN, p2.SSN
FROM Customer AS p1 join
Customer AS p2
on p1.SSN < p2.SS INNER JOIN
(SELECT BVSSN, BVVin, Vin
FROM CarPurchase INNER JOIN
Car
ON BVVin = Vin
) AS t
ON p1.SSN = BVSSN and p2.SSN = BVSSN