2011-01-25 3 views
0
$sQuery = ' 
SELECT DISTINCT SQL_CALC_FOUND_ROWS IF(`Profiles`.`Couple`=0, 
`Profiles`.`ID`, IF(`Profiles`.`Couple`>`Profiles`.`ID`, `Profiles`.`ID`, 
`Profiles`.`Couple`)) AS `ID` FROM `Profiles`'; 


$sCountries = implode("','", $mValue); 
    $sJoin .= " LEFT JOIN `hm_locations` ON (`hm_locations`.`country` IN '".$sCountries."' 
    AND `hm_locations`.`profileID` = `Profiles`.`ID`) "; 

このクエリは別の関数と組み合わされていますが、基本的にLEFT JOINセクションを正しく書き直す方法を知りたいのです。MySQLが残っている問題

私はここに自分の左への参加を追加しようとしているので、国が検索と一致するhm_locationsからIDを取得します。

私はLEFT JOINセクションでのみヘルプが必要です。なぜなら、これは動作しない唯一の部分だからです。あなたは括弧内にあなたの国を配置する必要があり

+1

実際に発生したエラーメッセージは、たとえば、phpMyAdminのテストとして実行されるプレーンSQLの例のように、何が起こっているのかを理解するのに非常に役立ちます。 –

+1

SQLの助けが必要な場合、PHPではなく、SQLコードを投稿してください。 –

答えて

2

たくさん

ありがとう:

"... `hm_locations`.`country` IN ('".$sCountries."') ..." 
+0

IN()は関数です。また、$ mValueの値は既にエスケープされていますか?彼らは本当にすべきです。 – TehShrike

0

SQL LEFT JOIN Syntax

SELECT column_name(s) 
FROM table_name1 
LEFT JOIN table_name2 
ON table_name1.column_name=table_name2.column_name 

何かに基づいて "=" 句以外の許可Iが表示されませんあなたのケースのプロファイルとhm_locationsのテーブルの値。 「AND」を含む「IN」節はLEFT JOINの構文の一部ではありません。

+1

正しいSQL構文の最終的なアービターとして必ずしもw3schoolsを使用するとは限りません。 –

+0

:)よく言った... – tmartin314

関連する問題