Попробуйте это, просто добавив @rownum
в начало списка SELECT
и сброс @rownum
в качестве неявного JOIN на конец. Я проверил это на одной из моих баз данных с аналогичным JOIN, и, похоже, он работает правильно.
Кажется странным смешивать явные JOIN
с неявным соединением с псевдотаблемой сброса @rownum
, но я не знаю способа выполнить явное JOIN
там, где нет общего столбца. Если кто-то может улучшить эту ситуацию, пожалуйста, прокомментируйте.
$this -> db -> query("
SELECT
@rownum := @rownum + 1 rownum,
tour_foreign.id,
tour_foreign.name,
tour_foreign_residence.name_re,
tour_foreign.service,
tour_foreign.date_go,
tour_foreign.date_back,
tour_foreign.term
FROM tour_foreign
INNER JOIN tour_foreign_residence
ON ( tour_foreign.id = tour_foreign_residence.relation ),
(SELECT @rownum := 0) r
WHERE tour_foreign.name LIKE "%' . $find . '%"
OR tour_foreign_residence.name_re LIKE "%' . $find . '%"
");
ОБНОВЛЕНИЕ явное JOIN
без предложения ON
также работает:
FROM tour_foreign
INNER JOIN tour_foreign_residence
ON ( tour_foreign.id = tour_foreign_residence.relation )
JOIN (SELECT @rownum := 0) r