Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.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
Php MySQL错误#from子句中的1052列不明确_Php_Mysql - Fatal编程技术网

Php MySQL错误#from子句中的1052列不明确

Php MySQL错误#from子句中的1052列不明确,php,mysql,Php,Mysql,对my MySQL DB的查询存在一些问题: "SELECT event_id, area_name FROM tie_in.events LEFT JOIN tie_in.area USING (area_id)" 当我对数据库运行此查询时,它返回错误#1052-from子句中的'area_id'列不明确 在这个查询中,我有其他的左连接s,我只是为了可读性而删除了它们,结果很好。 如果您能帮助解决此问题,我们将不胜感激 谢谢大家 如果多个表具有同名的列,则必须通过在DB前面添加表名来告诉DB

对my MySQL DB的查询存在一些问题:

"SELECT event_id, area_name FROM tie_in.events LEFT JOIN tie_in.area USING (area_id)"
当我对数据库运行此查询时,它返回错误
#1052-from子句中的'area_id'列不明确

在这个查询中,我有其他的
左连接
s,我只是为了可读性而删除了它们,结果很好。 如果您能帮助解决此问题,我们将不胜感激


谢谢大家

如果多个表具有同名的列,则必须通过在DB前面添加表名来告诉DB使用哪个列

SELECT e.event_id, 
       a.area_name 
FROM tie_in.events e
LEFT JOIN tie_in.area a ON a.area_id = e.area_id 

请尝试使用
TABLE\u-NAME.area\u-id
(其中
TABLE\u-NAME
当然是包含
area\u-id
列的实际表名)。即使您的查询没有遇到此问题,最佳做法是使用表名或(最好)分配给表的别名限定所有列引用(见juergen d的答案)。这种做法可以防止以后在正在运行的查询中,当有人向查询使用的表中添加与查询中已引用的列的名称匹配的列时,出现此错误。每次使用句点分隔表和列时,我都会收到语法错误。我不确定我做错了什么@Darren@velvetpuma信息技术如果您提供了表模式,则会有所帮助。+1遵循此模式的一个巨大好处(即,在每个引用多个表的查询中限定所有列引用)是,它将防止“不明确的列”当有人向查询使用的某个表中添加列,并且列名与查询中已引用的列的名称匹配时,稍后弹出错误。(如果不遵循此模式,向表中添加列可能会“中断”以前工作的SQL语句。)另一个好处是,读者可以更容易地破译SQL;读者可能不“知道”哪些列来自哪些表。很好,这个方法工作得很好,但现在我用这种方式格式化查询,语法在我的datetime请求中有点混乱:`DATE_FORMAT(event_time,'%W%M%D at%l:%i%p')作为活动时间`有没有关于如何使这项工作的想法?nvm,我只是把它放错了。我发现了。谢谢你的帮助!