2

これが私の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

実行すると#1054 - Unknown column 'fm.site_id' in 'on clause'エラーが発生します

fm テーブルにはその site_id 列があるため、構文の問題がありますが、SQL がそれをフェッチしない理由がわかりません??

私のテーブル構造 featured_membersは次のようになります。

1 sr_no     
2 member_id     
3 member_type_id 
4 site_id   

member_profiles構造は次のとおりです。

1 member_profile_id 
2 member_id     
3 first_name    
4 middle_name   
5 last_name     
6 gender
7 image
4

5 に答える 5

2

間違っています。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
于 2013-01-18T14:16:42.393 に答える
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
于 2013-01-18T14:17:34.983 に答える
1

クエリに「on」句がありません。MySQL にはそれが必要です。したがって、Moddom が提供するソリューションは、私の考えでは正しい答えです。

http://dev.mysql.com/doc/refman/5.0/en/join.htmlおよびhttp://bugs.mysql.com/bug.php?id=13551も参照してください。

于 2013-01-18T14:38:13.887 に答える
1

これを試して...

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 句は、エラーの原因である対応する ON を期待しています

于 2013-01-18T14:41:15.240 に答える