2013-08-19 26 views
0

你能檢查什麼不對的SQL查詢這個php-sql查詢有什麼不對嗎?

SELECT DISTINCT 
    A.a 
A.b 
FROM tableAA AS A 
INNER JOIN(tableBB AS B) 
ON(A.a= B.a) 
INNER JOIN(tableCC AS C) 
ON(A.a = C.a) 
INNER JOIN(tableDD AS D) 
ON(A.a = D.a) 

WHERE 

    B.c = '$selectedtype' AND 
    B.d NOT LIKE '%$selection%' AND 
    C.e='$selction111' 
OR 
    D.c = '$selectedtype' AND 
A.d NOT LIKE '%$selection%' AND 
    C.e='$selction111' 

我對OR狀況的擔憂,我想在這裏,要麼之間的條件「其中」和「或」是真的還是下面的「OR」是真正。

寫作的方式是否正確?或者有沒有其他的方式來寫?

+0

我的經驗法則是,任何時候你有和,並在WHERE條件的組合,或者,你應該用括號內的分組要清楚什麼樣的預期順序操作是。 –

+1

'AND'>'OR',但括號可以幫助你減少思考。 –

回答

0

您可能正在尋找:

(B.c = '$selectedtype' AND B.d NOT LIKE '%$selection%' AND C.e='$selction111') 
OR 
(D.c = '$selectedtype' AND A.d NOT LIKE '%$selection%' AND C.e='$selction111')