Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.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在where子句中给出未知列错误_Mysql_Sql - Fatal编程技术网

MySQL在where子句中给出未知列错误

MySQL在where子句中给出未知列错误,mysql,sql,Mysql,Sql,这是我的SQL语句,我无法运行它: SELECT fm . * , mp.first_name, mp.last_name, mp.image, mp.member_id FROM featured_members AS fm JOIN member_profiles AS mp WHERE fm.member_id = mp.member_id AND fm.member_type_id =6 AND fm.site_id =1 当我运行它时,它在“on子句”中给出了1054-未知列“fm.

这是我的SQL语句,我无法运行它:

SELECT fm . * , mp.first_name, mp.last_name, mp.image, mp.member_id
FROM featured_members AS fm
JOIN member_profiles AS mp WHERE fm.member_id = mp.member_id
AND fm.member_type_id =6
AND fm.site_id =1
当我运行它时,它在“on子句”中给出了1054-未知列“fm.site_id”

因为fm表确实有那个site_id列,但我不知道SQL为什么不获取它,所以有语法问题吗

我的特色会员表结构如下:

1 sr_no     
2 member_id     
3 member_type_id 
4 site_id   
对于成员_配置文件,结构为:

1 member_profile_id 
2 member_id     
3 first_name    
4 middle_name   
5 last_name     
6 gender
7 image
你做错了: 对于JOIN,必须使用ON子句,除非它是交叉联接

SELECT fm . * , mp.first_name, mp.last_name, mp.image, mp.member_id
FROM   featured_members AS fm
JOIN   member_profiles  AS mp ON ( fm.member_id = mp.member_id )
WHERE fm.member_type_id =6
AND fm.site_id =1
测试这一点:

SELECT fm.*, mp.first_name, mp.last_name, mp.image, mp.member_id
FROM featured_members AS fm
LEFT JOIN member_profiles AS mp ON fm.member_id = mp.member_id
WHERE fm.member_type_id =6 AND fm.site_id =1

查询中缺少on子句,MySQL需要它。因此,在我看来,Moddom提供的解决方案是正确的答案

请参见和。

试试这个

SELECT fm . * , mp.first_name, mp.last_name, mp.image, mp.member_id
FROM featured_members AS fm, member_profiles AS mp
WHERE fm.member_id = mp.member_id
AND fm.member_type_id =6
AND fm.site_id =1
语句中的JOIN子句需要一个对应的语句,它是导致错误的原因

SELECT fm . * , mp.first_name, mp.last_name, mp.image, mp.member_id <br>
FROM featured_members fm , member_profiles mp <br>
where fm.member_id = mp.member_id <br>
AND fm.member_type_id =6 <br>
AND fm.site_id =1

你的表格是什么样子的?fm.site\u id在特色会员表格中有site\u id列吗?检查一下…你的确认你连接到了正确的数据库?例如,我有时会选中“开发数据库”而不是“生产数据库”或“副产品数据库”。您的问题中显示的查询不可能产生问题中显示的错误,而与表无关。特别是,查询没有“on子句”,因此错误最多是。。。在where子句中。为了这个问题,您是否尝试过简化查询,并在这样做的过程中对其进行了实质性的更改?我怀疑您可能混合了隐式连接和显式连接,并被连接优先级所困扰,导致fm表无法用于评估site_id标准。正如我在之前的评论中所问的:您是否尝试过为了这个问题简化查询,并在这样做的过程中对其进行了实质性更改?如果是这样,您需要提供实际导致给定错误的查询,以便任何人都能够调试它now@DonSeba必须在上使用连接,否则如何连接表?这不仅仅是良好的实践@bonCodigo:在MySQL中,没有条件的连接是一个交叉连接。@eggyal这里不是关于交叉连接的,它是一个例外..:@DonSeba您可能会说,在MYSQL中,on是join的必填项,除非另有说明,否则它是交叉连接=谢谢,伙计,它帮助了我: