[英]LEFT JOIN not works after MATCH (…) AGAINST (… IN BOOLEAN MODE)
This query: 该查询:
$user_mail_all=mysql_query("SELECT *
FROM `mailing` WHERE MATCH (resp)
AGAINST ('$user_resp' IN BOOLEAN MODE)
OR `cor`='$username' ORDER BY `id` DESC LIMIT ".$start.",".$per_page )
is working well, but next query: 运行良好,但下一个查询:
$user_mail_all=mysql_query("SELECT *
FROM `mailing`WHERE MATCH (resp)
AGAINST ('$user_resp' IN BOOLEAN MODE)
OR `cor`='$username'
LEFT JOIN `mail_views`
ON mailing.id=mail_views.lid
AND mail_views.uid=".$_SESSION['uid']."
ORDER BY `id` DESC LIMIT ".$start.",".$per_page)
Results in an error: 导致错误:
You have an error in your SQL syntax; 您的SQL语法有误; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LEFT JOIN mail_views ON mailing.id=mail_views.lid AND mail_views.uid=12 ORDER ' at line 1 检查与您的MySQL服务器版本相对应的手册以获取正确的语法,以在第1行的“ LEFT JOIN mail_views ON mailing.id = mail_views.lid AND mail_views.uid = 12 ORDER”附近使用
Why? 为什么?
First JOIN then MATCH 首先加入然后匹配
$user_mail_all=mysql_query("SELECT *
FROM `mailing`
LEFT JOIN `mail_views`
ON mailing.id=mail_views.lid
WHERE MATCH (resp)
AGAINST ('$user_resp' IN BOOLEAN MODE)
OR `cor`='$username'
AND mail_views.uid=".$_SESSION['uid']."
ORDER BY `id` DESC LIMIT ".$start.",".$per_page)
in your query implementation of left join is wrong...it should be: 在查询中左联接的实现是错误的...应该是:
select * from Table1
left join table2
where ..... 选择*从Table1
左连接 table2
,其中...
so use this: 所以使用这个:
$user_mail_all=
mysql_query(
"SELECT *
FROM `mailing`
LEFT JOIN `mail_views`
ON ( mailing.id=mail_views.lid
AND mail_views.uid=".$_SESSION['uid']".)
WHERE MATCH (resp)
AGAINST ('$user_resp' IN BOOLEAN MODE)
OR `cor`='$username'
ORDER BY `id` DESC LIMIT ".$start.",".$per_page);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.