MYSQL: запрос работает только с одним значением? - PullRequest
1 голос
/ 15 сентября 2011

У меня есть запрос MySQL, который выглядит следующим образом:

$query = "SELECT * FROM users
          JOIN signup ON users.uid = signup.uid
          JOIN jobs ON users.category_id = jobs.id
          JOIN lclasses ON users.class = lclasses.class_id
          JOIN degrees ON users.degree_id = degrees.degree_id
          JOIN trades ON users.trade_id = trades.trade_id
          JOIN tradestatuses ON users.trade_status = tradestatuses.status_id
          WHERE users.uid='{$id}' LIMIT 1";

Если $ id = 8, тогда мой запрос возвращается правильно. Если я попробую любой другой идентификатор, который находится в моей базе данных, я получу пустой набор результатов.

Я проверил запрос в phpMyAdmin и получил тот же результат. Нет ошибок в запросе, когда я использую разные числа, только пустой набор результатов, но я могу посмотреть на строку прямо в разделе «Обзор» Мой стол поврежден? У кого-нибудь было что-нибудь подобное с ними?

Ответы [ 2 ]

2 голосов
/ 15 сентября 2011

Пустой набор результатов является пустым набором результатов.

Поскольку все они ВНУТРЕННИЕ СОЕДИНЕНИЯ, любой объединений может быть "связан ни с чем"(и, следовательно, в результате пустой набор результатов).Невозможно сказать больше без тщательной проверки данных.Я хотел бы разбить запрос на части, чтобы увидеть, какая часть «не работает».

Удачное кодирование.


Полезный совет из комментария пользователя mu:

Измените ваши JOINs на LEFT JOINs и ищите неожиданные NULL в выходных данных.

0 голосов
/ 15 сентября 2011

Возможно, проблема в логике запроса.Чтобы проверить это, пожалуйста, предоставьте описание таблиц и ожидаемые результаты.Хороший практический способ найти ошибку - это комментировать другие соединения.Начните с

SELECT * 
FROM users
WHERE users.uid='{$id}' 
LIMIT 1

, а затем добавьте find join, который обрезает записи

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