2013-01-12 42 views
0

這個查詢:LEFT JOIN不工作後MATCH(...)反對(... IN BOOLEAN MODE)

$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) 

運作良好,但明年查詢:

$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) 

結果一個錯誤:

You have an error in your SQL syntax; 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

爲什麼?

+2

加入之前wheres。 – GSerg

+0

我不想回答,因爲它可能只是你在這裏輸入的內容,但是你需要在'mailing'之後和頂部的WHERE之前的空格。如果這是你的SQL,請更正。再次,我不認爲這是你的主要問題,正如其他答案中所述。 – donlaur

回答

1

先加入再搭配

$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) 
+0

巨人謝謝! – Deed

0

在查詢執行的左連接是錯誤的......應該是:

SELECT * FROM Table1左加入table2地方.....

所以用這個:

  $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);