2012-01-27 80 views
0

我有一個奇怪的問題,當我輸入此查詢中phpmyadming:的phpMyAdmin不能返回任何記錄

SELECT DISTINCT E.* FROM Events E, TICKET T WHERE ((E.idEvent=T.IDEvent AND T.Email='[email protected]')OR (E.email = '[email protected]')) AND E.dateEvent >= '2012-01-27 20:04:28' ORDER BY E.dateEvent ASC 

我得到不記錄,沒有發現錯誤或任何東西,好像我從來沒有作出查詢。我強烈認爲查詢在phpmyadmin上工作過,但現在我似乎無法在本地或在服務器上工作。兩臺不同的機器,本地我有MAMP和Linux服務器。

奇怪的是,如果查詢是由PHP完成的,對於相同的數據庫,它會返回正確的值。

任何想法是怎麼回事?

謝謝。

回答

0

對於初學者來說,如果T.email不等於'[email protected]',那麼當前查詢有風險返回笛卡爾產品。這是WHERE包含JOIN條件的唯一部分。

你應該考慮明確說明您的JOIN和ON關鍵字,像這樣的(然後你的WHERE子句變得更容易理解):

SELECT DISTINCT E.* 
FROM Events E 
INNER JOIN TICKET T ON E.idEvent=T.IDEvent 
WHERE (T.Email='[email protected]' OR E.email = '[email protected]') 
     AND E.dateEvent >= '2012-01-27 20:04:28' 
ORDER BY E.dateEvent ASC 

,並做兩個票和事件表包含電子郵件字段?或者,他們中的一個是O型的?

對於初學者,請嘗試上述查詢。

+0

感謝您的提示,但仍然是同樣的事情,沒有返回或顯示錯誤。 是的,這兩個表都包含電子郵件字段 – subharb 2012-01-28 10:58:16

相關問題