簡體   English   中英

在第一個表上具有WHERE子句的LEFT OUTER JOIN

[英]LEFT OUTER JOIN with a WHERE clause on the first table

我想從表中SELECT一些行,但是這些行必須滿足諸如column = value的條件。 這是我的SELECT語句:

$query = "SELECT t1.title, t1.introtext, t2.jr_street, t2.jr_city, 
    t2.jr_state, t2.jr_postalcode, t2.jr_country, t3.created, t3.name, 
    t3.title, t3.comments, t4.ave 
FROM $table1 t1
    LEFT OUTER JOIN $table2 t2 ON t1.id = t2.contentid
    LEFT OUTER JOIN $table3 t3 ON t1.id = t3.pid
    LEFT OUTER JOIN $table4 t4 ON t1.id = t4.reviewid
";

我嘗試在FROM語句后添加WHERE子句,但出現SQL語法錯誤。

好像我不得不猜測你的問題。 下次您應該給我們提供完整示例的確切錯誤。 你嘗試過這樣的事情嗎?

$value = (int) $_POST['value'];
$query = "SELECT t1.title, t1.introtext, t2.jr_street, t2.jr_city, t2.jr_state,
t2.jr_postalcode, t2.jr_country, t3.created, t3.name, t3.title, 
t3.comments, t4.ave FROM $table1 t1
LEFT OUTER JOIN $table2 t2 ON t1.id = t2.contentid
LEFT OUTER JOIN $table3 t3 ON t1.id = t3.pid
LEFT OUTER JOIN $table4 t4 ON t1.id = t4.reviewid
WHERE t2.column = ".$value."
AND t1.catid=8";

我只是猜測您要從table2中選擇;)您必須填寫正確的表和列。 我也將類別選擇放在where子句中,因為恕我直言,這使它更具可讀性。

請絕對確保將所有變量(如$value (和表))保存下來以在查詢中使用,例如, $value是整數,並且表已在您的代碼中顯式設置,而不是用戶輸入。 您可以在此處閱讀有關SQL注入的更多信息:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM