Что не так с этим запросом на соединение SQL - PullRequest
0 голосов
/ 13 декабря 2018

Таким образом, все поля и таблицы существуют и имеют связанные данные (проверено).И все же он не дает мне никаких строк в результате.

SELECT `r`.*, `k`.`keyword`, `c`.`name`, `c`.`state`
FROM `local_rank` as `r`
LEFT JOIN `keyword` as `k` ON `r`.`keyword_id` = `k`.`keyword_id`
LEFT JOIN `campaign` as `c` ON `k`.`campaign_id` = `c`.`campaign_id`
WHERE `c`.`campaign_id` = '6'
AND `r`.`location` = '60602'
ORDER BY `local_rank_id` DESC
 LIMIT 6, 60602

Когда я удаляю одно из условий WHERE / AND, он выбирает строки данных.

Ответы [ 2 ]

0 голосов
/ 13 декабря 2018

Удалите смещение из лимита, у вас, вероятно, нет более 60602 строк, соответствующих вашему запросу

SELECT `r`.*, `k`.`keyword`, `c`.`name`, `c`.`state`
FROM `local_rank` as `r`
LEFT JOIN `keyword` as `k` ON `r`.`keyword_id` = `k`.`keyword_id`
LEFT JOIN `campaign` as `c` ON `k`.`campaign_id` = `c`.`campaign_id`
WHERE `c`.`campaign_id` = '6'
  AND `r`.`location` = '60602'
ORDER BY `local_rank_id` DESC
LIMIT 6
0 голосов
/ 13 декабря 2018

Поскольку вы используете «LIMIT» со смещением, должно отображаться не менее 60602 записей.В этом можно убедиться, убрав смещение LIMIT и посчитав количество возвращаемых строк.

SELECT `r`.*, `k`.`keyword`, `c`.`name`, `c`.`state`
FROM `local_rank` as `r`
LEFT JOIN `keyword` as `k` ON `r`.`keyword_id` = `k`.`keyword_id`
LEFT JOIN `campaign` as `c` ON `k`.`campaign_id` = `c`.`campaign_id`
WHERE `c`.`campaign_id` = '6'
AND `r`.`location` = '60602'
ORDER BY `local_rank_id` DESC
 LIMIT 6
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...