2013-05-27 90 views
0

我想要SELECT從表格中的一些行,但是這些行必須滿足像column = value這樣的條件。這裏是我的SELECT聲明:LEFT OUTER JOIN在第一張桌子上有WHERE子句

$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語法錯誤。

+0

您是否嘗試過加入'WHERE'條款的最後'JOIN'後? –

+0

你試過的WHERE子句是什麼? – Frildoren

回答

1

好像我必須猜測你的問題。下次你應該給我們完整的例子一個確切的錯誤。你有嘗試過這樣的嗎?

$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中選擇;)你必須填寫正確的表格和列。自從imho以來,我也把類別選擇放在where子句中,這使得它更具可讀性。

請確保像$value(和表格)這樣的所有變量都保存在查詢中,例如$value是一個整數,並且表格在您的代碼中明確設置,並且不是用戶輸入。您可以在此處詳細瞭解SQL-注射: