phpmyadmin не возвращает никаких записей - PullRequest
0 голосов
/ 27 января 2012

У меня странная проблема при вводе этого запроса в phpmyadming:

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

Я не получаю записи, ошибок не найдено или что-то еще, как будто я никогда не делал запрос. Я сильно верил, что запрос работал над phpmyadmin раньше, но теперь я не могу заставить его работать локально или на сервере. Две разные машины, локально у меня MAMP и на сервере linux.

Самое странное, что если запрос выполняется php, к той же самой БД он возвращает правильные значения.

Есть идеи, что происходит?

Спасибо.

1 Ответ

0 голосов
/ 28 января 2012

Для начала, ваш текущий запрос рискует вернуть декартово произведение, если T.email не равен 'david@air-ticket.com.es'. Это единственная часть WHERE, в которой содержится условие JOIN.

Вам следует рассмотреть возможность явного указания ключевых слов JOIN и ON следующим образом (и тогда ваше предложение WHERE станет более понятным):

SELECT DISTINCT E.*
FROM Events E
INNER JOIN TICKET T ON E.idEvent=T.IDEvent
WHERE (T.Email='david@air-ticket.com.es' OR E.email = 'david@myweb.com')
      AND E.dateEvent >= '2012-01-27 20:04:28' 
ORDER BY E.dateEvent ASC

А таблицы Ticket и Events содержат поле электронной почты? Или один из них тип-о?

Для начала попробуйте приведенный выше запрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...