Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 多重联接上on子句中的未知列_Mysql_Sql_Join - Fatal编程技术网

Mysql 多重联接上on子句中的未知列

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

我试图通过将表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 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