MySQL离开加入问题

时间:2011-01-25 13:00:13

标签: php mysql

$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部分才能正常工作。

我正在尝试在此处添加我自己的左连接,以便搜索将从hm_locations中获取ID,其中国家/地区与搜索匹配。

我只想要LEFT JOIN部分的帮助,因为这是唯一不起作用的部分。

非常感谢

2 个答案:

答案 0 :(得分:2)

您需要将国家/地区置于括号中:

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

答案 1 :(得分: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

除了基于表中的值的“=”子句之外,我没有看到任何允许的内容,在你的个人资料和hm_locations中。带有“AND”的“IN”子句不是LEFT JOIN语法的一部分。