我正在尝试在我创建的ERD中的3个表之间进行内部联接。我已经使用这些表成功构建了3 - 3层子查询,当我研究这个问题时,我可以说在我的DDL中,我没有使用双引号,因此列不区分大小写。加入不是我强大的套房所以任何帮助将不胜感激。这是我提出的查询,以及它给我的错误。我在人们进行内部联接时看到的所有答案都使用了语法“INNER JOIN”,但我没有教过这个?我的方法还可以吗?
SQL>
SELECT regional_lot.location,
rental_agreement.vin,
rental_agreement.contract_ID
FROM regional_lot,
rental_agreement
WHERE regional_lot.regional_lot_id = vehicle1.regional_lot_ID
AND vehicle1.vin = rental_agreement.vin;
*
ERROR at line 1:
ORA-00904: "VEHICLE1"."VIN": invalid identifier
答案 0 :(得分:2)
对于初学者,您的vehicle1
列表中没有FROM
。
您应该尝试使用ANSI连接。首先,它们的可读性更高,并且您不会因连接条件而污染WHERE
子句
SELECT regional_lot.location, rental_agreement.vin, rental_agreement.contract_ID
FROM rental_agreement
INNER JOIN vehicle1
ON rental_agreement.vin = vehicle1.vin
INNER JOIN regional_lot
ON vehicle1.regional_lot_ID = regional_lot.regional_lot_id;
答案 1 :(得分:1)
您需要将表vehicle1添加到查询中的“from”部分:
from regional_lot, rental_agreement, vehicle1
答案 2 :(得分:0)
您似乎错过了加入表格VEHICLE1
。您还可以在表名上使用别名。
试试这样,
SELECT regional_lot.location,
rental_agreement.vin,
rental_agreement.contr act_ID
FROM regional_lot a,
rental_agreement b,
vehicle1 c
WHERE a.regional_lot_id = c.regional_lot_ID
AND c.vin = b.vin;