3

我有以下 MySQL:

select  `car`.`ID` AS `ID`,
    `title`,`text`
    from `car` 
    LEFT JOIN `truck` as bigcar ON bigcar.`ID` = `car`.`truckID` 
    WHERE `ID` ='1';

出于某种原因,我得到

where 子句中的列“ID”不明确

由于复杂的代码原因,我没有将别名重命名为其他名称(例如 ID2)
这不应该吗?

4

3 回答 3

8

您需要id在 where 子句中指定要用于的表。否则查询将不知道使用哪一个,因为您在两个表中具有相同的列名

SELECT
 `car`.`ID` AS `ID`, `title`,`text`
FROM `car` 
LEFT JOIN `truck` as bigcar ON bigcar.`ID` = `car`.`truckID` 
WHERE `car`.`ID` ='1';

或者,如果您想要bigcarID,则必须使用:

WHERE `bigcar`.`ID` ='1'; // not truck but bigcar which is the alias you created
于 2011-11-25T14:31:05.820 回答
3

关于什么:

select  `car`.`ID` AS `ID`, 
    `title`,`text` 
    from `car`  
    LEFT JOIN `truck` as bigcar ON bigcar.`ID` = `car`.`truckID`  
    WHERE `car`.`ID` ='1'; 
于 2011-11-25T14:31:12.103 回答
0

该错误意味着该字段ID存在于两个表中。要修复它,您应该在 WHERE 子句中添加一个表别名,例如 - bigcar.ID = 1 或 car.ID = 1 ...根据需要。

于 2011-11-25T14:34:28.553 回答