mysql查询不明确错误

mysql查询不明确错误,mysql,sql,Mysql,Sql,我在尝试查询此sql时遇到错误 1052-where子句中的“费用id”列不明确 下面是我的问题 SELECT `inmate`.`inmate_id`,`inmate`.`fname`,`inmate`.`lname`,`inmate_case`.*,`case_information`.`case_id`,`case_charge`.*,`charge`.`charge_id` FROM inmate , `charge` LEFT JOIN `prison`.`inmate_case` O

我在尝试查询此sql时遇到错误

1052-where子句中的“费用id”列不明确

下面是我的问题

SELECT `inmate`.`inmate_id`,`inmate`.`fname`,`inmate`.`lname`,`inmate_case`.*,`case_information`.`case_id`,`case_charge`.*,`charge`.`charge_id` FROM inmate , `charge`
LEFT JOIN `prison`.`inmate_case` ON `inmate`.`inmate_id` = `inmate_case`.`inmate_id` 
LEFT JOIN `prison`.`case_information` ON `inmate_case`.`case_id` = `case_information`.`case_id` 
LEFT JOIN `prison`.`case_charge` ON `case_information`.`case_id` = `case_charge`.`case_id` 
 WHERE(( charge_id = 3)) 

必须有多个表具有名为charge\u id的列。因为要将其放入结果集中,所以可以将WHERE子句更改为

WHERE charge.charge_id = 3
如果您只需要名字和姓氏,那么您可以从select中删除一些列-您必须从case_charge中提取多个名为charge_id的列。您可以将选择简化为以下内容:

SELECT inmate.inmate_id, inmate.fname, inmate.lname
FROM inmate
INNER JOIN prison.inmate_case ON inmate.inmate_id = inmate_case.inmate_id 
INNER JOIN prison.case_information ON inmate_case.case_id = case_information.case_id 
INNER JOIN prison.case_charge ON case_information.case_id = case_charge.case_id
INNER JOIN charge ON case_charge.charge_id = charge.charge_id
 WHERE charge.charge_id = 3

并根据需要向SELECT显式添加列。我将您的左连接更改为内部连接,因为您只希望囚犯出现在押记表中。如果您试图吸引其他表中可能出现或不出现的囚犯,则可以使用外部联接。尽管在这种情况下它们仍然有效,因为您将结束字段放在WHERE子句中。否则,你将遣返所有囚犯,即使他们根本没有任何案件或指控

我正在尝试为任何收费的人投射名字和姓氏。\u id=3您是在运行查询时出错,还是在尝试将结果集拉入对象时出错?您从中选择*的case\u charge表似乎也有一个charge\u id列。不要混合使用隐式和显式连接语法。事实上,根本不要使用隐式语法。除此之外,只需消除歧义-就像您对所有其他列所做的那样。另外,不要使用邪恶选择*。那么我该如何更改以打印此文件?因为我想不出来。我对此不熟悉。或者为表和字段使用别名。。。来自费用c。。。。。其中c.charge_id=3。@user3398034不仅适用于WHERE子句,也适用于您案例中SELECT中提到该字段的其他位置。我认为它可能也在case_charge表中,您正在从中选择*。