Laravel, изо всех сил пытается воспроизвести запрос с помощью построителя запросов - PullRequest
0 голосов
/ 17 сентября 2018

Я получил следующий запрос, который возвращает 44 строки:

SELECT id, IF(r.make, CONCAT(makes.description, ': ', r.make), 0) AS make, IF(r.model, models.description, 0) AS model, r.text, r.h1_tag, r.title, r.keywords, r.description, r.website_search_path_id, r.website_vehicle_type_id 
FROM website_results_text r 
LEFT JOIN vehicle_makes makes ON makes.code = r.make
LEFT JOIN vehicle_models models ON models.code = r.model AND models.make = r.make
WHERE r.website_id = 1966

Результаты аналогичны приведенным ниже, не включают все строки и исключенные столбцы, которые на самом деле не имеют значения.

---------------------------------------------------------------------
| id | make       | model        | text     | h1_tag     | title    |
_____________________________________________________________________
| 192| 0          | 0            | test     | test       | test     |
| 193| Fiat:24    | 0            | test     | test       | test     |
---------------------------------------------------------------------

Ниже приведен запрос, который я получил до сих пор, как вы можете видеть, что я пропускаю операторы IF, если из таблицы vehicle_makes не возвращается make.

$resultsText = ResultsText::where([ 'website_id' => $website->id ])
    ->join('vehicle_makes', 'website_results_text.make', '=', 'vehicle_makes.code')
    ->join('vehicle_models', 'website_results_text.model', '=', 'vehicle_models.code')
    ->select(
        'vehicle_makes.description AS make',
        'vehicle_models.description AS model',
        'website_results_text.text',
        'website_results_text.h1_tag',
        'website_results_text.title',
        'website_results_text.keywords',
        'website_results_text.website_search_path_id',
        'website_results_text.website_vehicle_type_id'
    )->get();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...