2013-07-17 75 views
0

我有這個疑問在這裏:SQL查詢問題與條件

SELECT formam.*, SMS_MONTIME1.IDTICKET, SMS_MONTIME1.MBYLLUR,SMS_MONTIME1.time_added 
FROM formam 
LEFT JOIN SMS_MONTIME1 ON formam.ID = SMS_MONTIME1.IDTICKET WHERE SMS_MONTIME1.IDTICKET ='' 
    or SMS_MONTIME1.IDTICKET is null 
    AND dyqani_pergjegjes=$dyqanip 
ORDER BY formam.data_fillim DESC 

的問題是,它工作得很好,但是當我加入的條件AND dyqani_pergjegjes=$dyqanip它不再工作,我沒有得到任何錯誤,雖然,我只是沒有得到想要的結果。

有人幫助,請

+1

dyqani_pergjegjes字段的類型是什麼,$ dyqanip中的值是多少,並且通常會在變量工作周圍添加'''引號。 'dyqani_pergjegjes ='$ dyqanip''? –

+0

任何錯誤消息? 'formam'或'SMS_MONTIME1'是否有一個名爲'dyqani_pergjegjes'的列? – bpgergo

+0

您是否嘗試添加括號以確保OR和AND的優先級清晰? – Luis

回答

1

這將prolly解決問題:

SELECT formam.*, SMS_MONTIME1.IDTICKET, SMS_MONTIME1.MBYLLUR,SMS_MONTIME1.time_added 
FROM formam 
LEFT JOIN SMS_MONTIME1 ON formam.ID = SMS_MONTIME1.IDTICKET WHERE SMS_MONTIME1.IDTICKET ='' 
    OR (SMS_MONTIME1.IDTICKET is null 
    AND dyqani_pergjegjes=$dyqanip) 
ORDER BY formam.data_fillim DESC 

我改變什麼,我把括號

SMS_MONTIME1.IDTICKET IS NULL和dyqani_pergjegjes = $ dyqanip

確保正確的p OR和AND的接受。