У меня трудно правильно управлять красноречивым запросом Laravel. Когда я обычно создаю запрос и запускаю его, он работает правильно.(select `c`.*, `ca`.*, CONCAT('http://127.0.0.1:8000/uploads/advertisement/', ca.video_upload) as video_url, `campion_videos`.`video_duration` as `totalVideoDuration` from `campion_videos` inner join `campions` as `c` on `c`.`id` = `campion_videos`.`campion_id` left join `client_advertisements` as `ca` on in(ca.id, campion_videos.ads_obj_id) where `campion_id` = 14 and `ca`.`status` = 1;)
< /code>
Я создал три таблицы: < /p>
Таблица 1: Campions
Таблица 2: campion_videos
Таблица 3 : client_advertisements < /p>
Внутреннее соединение применяется для связи таблицы Campion с таблицей Campion_videos, чтобы получить соответствующие данные. После этого применяется левое соединение для получения данных из таблицы Client_Advertisements, которая содержит разделенные запятые значения из таблицы ADS_OBJ_ID в таблице campion_videos. < /P>
Я отображаю записи из всех трех таблиц с Следующие сопоставления: < /p>
campions < /p>
Эта запись предназначена для этого Таблица: < /p>
INSERT INTO `campions` (`id`, `campion`, `start_datetime`, `end_datetime`, `campaign_duration`, `winner_declare_date`, `winning_amount`, `description`, `status`, `created_at`, `updated_at`) VALUES
(14, 'Digital Marketing Demo', '2025-02-25 05:00:00', '2025-02-25 06:00:00', 3600, '2025-02-25 07:00:00', 250, 'Digital Marketing Demo', 1, '2025-02-19 11:58:13', '2025-02-19 11:58:13');
< /code>
< /li>
campion_videos.
Эта запись предназначена для этой таблицы: < /p>
INSERT INTO `campion_videos` (`id`, `campion_id`, `status`, `ads_obj_id`, `video_duration`, `created_at`, `updated_at`) VALUES (8, 14, 1, '7,1', 75, '2025-02-19 11:59:21', '2025-02-19 11:59:21')
< /code>
< /li>
client_advertisements < /p>
Эта запись предназначена для этой таблицы: < /p>
INSERT INTO `client_advertisements` (`id`, `client_id`, `priority`, `schedule_time`, `end_time`, `video_duration`, `video_upload`, `description`, `status`, `created_at`, `updated_at`) VALUES
(1, 3, 1, '2025-02-11 00:01:00', '2025-02-28 19:58:00', 45, '1739282582169946039548652391.mp4', 'Marketers must work collaboratively with their enterprise counterparts to develop, deliver and communicate their value offerings to their customers over relevant engagement channels', 1, '2025-02-01 09:00:10', '2025-02-19 11:02:33'),
(7, 1, 2, '2025-02-11 20:05:00', '2025-02-28 20:06:00', 30, '17392821101699460459file_example_MP4_480_1_5MG.mp4', 'Chetu is a US-based software development company providing businesses worldwide with tailored software solutions from industry specialized developers.', 1, '2025-02-01 09:06:36', '2025-02-11 08:33:51'),
< /code>
Функция find_in_set работает со значениями, разделенными запятыми. их против стола campion_videos. Что должно произойти, так это то, что он должен сначала забрать таблицу ADS_OBJ_ID (идентификаторы, разделенные с запятой), а затем получить соответствующие записи из таблицы Client_Advertisements на основе этих идентификаторов. < /P>
Создал следующий запрос Laravel, но он неправильно функционирует: < /p>
$videoPath = asset('uploads/advertisement');
$campaignVideoList = CampionVideo::where('campion_id', $id)
->join('campions as c', 'c.id', '=', 'campion_videos.campion_id')
->leftJoin('client_advertisements as ca', function($join) {
$join->where('ca.id', DB::raw('FIND_IN_SET(ca.id, campion_videos.ads_obj_id)'));
})
->where('ca.status', 1)
->select('c.*', 'ca.*', DB::raw("CONCAT('{$videoPath}/', ca.video_upload) as video_url"), 'campion_videos.video_duration as totalVideoDuration')
->get();
print_r($campaignVideoList);die;
< /code>
< /li>
< /ol>
Правильный поиск данных: вы ожидали, что запросы SQL и LARAVE , campion_videos и client_advertisements) точно. Значения ads_obj_id из таблицы Campion_videos с использованием функции find_in_set.
Подробнее здесь: https://stackoverflow.com/questions/794 ... -manage-it
Как разрешить этот красноречивый запрос Laravel и управлять им ⇐ Php
Кемеровские программисты php общаются здесь
-
Anonymous
1740145649
Anonymous
У меня трудно правильно управлять красноречивым запросом Laravel. Когда я обычно создаю запрос и запускаю его, он работает правильно.(select `c`.*, `ca`.*, CONCAT('http://127.0.0.1:8000/uploads/advertisement/', ca.video_upload) as video_url, `campion_videos`.`video_duration` as `totalVideoDuration` from `campion_videos` inner join `campions` as `c` on `c`.`id` = `campion_videos`.`campion_id` left join `client_advertisements` as `ca` on in(ca.id, campion_videos.ads_obj_id) where `campion_id` = 14 and `ca`.`status` = 1;)
< /code>
Я создал три таблицы: < /p>
Таблица 1: Campions
Таблица 2: campion_videos
Таблица 3 : client_advertisements < /p>
Внутреннее соединение применяется для связи таблицы Campion с таблицей Campion_videos, чтобы получить соответствующие данные. После этого применяется левое соединение для получения данных из таблицы Client_Advertisements, которая содержит разделенные запятые значения из таблицы ADS_OBJ_ID в таблице campion_videos. < /P>
Я отображаю записи из всех трех таблиц с Следующие сопоставления: < /p>
campions < /p>
Эта запись предназначена для этого Таблица: < /p>
INSERT INTO `campions` (`id`, `campion`, `start_datetime`, `end_datetime`, `campaign_duration`, `winner_declare_date`, `winning_amount`, `description`, `status`, `created_at`, `updated_at`) VALUES
(14, 'Digital Marketing Demo', '2025-02-25 05:00:00', '2025-02-25 06:00:00', 3600, '2025-02-25 07:00:00', 250, 'Digital Marketing Demo', 1, '2025-02-19 11:58:13', '2025-02-19 11:58:13');
< /code>
< /li>
campion_videos.
Эта запись предназначена для этой таблицы: < /p>
INSERT INTO `campion_videos` (`id`, `campion_id`, `status`, `ads_obj_id`, `video_duration`, `created_at`, `updated_at`) VALUES (8, 14, 1, '7,1', 75, '2025-02-19 11:59:21', '2025-02-19 11:59:21')
< /code>
< /li>
client_advertisements < /p>
Эта запись предназначена для этой таблицы: < /p>
INSERT INTO `client_advertisements` (`id`, `client_id`, `priority`, `schedule_time`, `end_time`, `video_duration`, `video_upload`, `description`, `status`, `created_at`, `updated_at`) VALUES
(1, 3, 1, '2025-02-11 00:01:00', '2025-02-28 19:58:00', 45, '1739282582169946039548652391.mp4', 'Marketers must work collaboratively with their enterprise counterparts to develop, deliver and communicate their value offerings to their customers over relevant engagement channels', 1, '2025-02-01 09:00:10', '2025-02-19 11:02:33'),
(7, 1, 2, '2025-02-11 20:05:00', '2025-02-28 20:06:00', 30, '17392821101699460459file_example_MP4_480_1_5MG.mp4', 'Chetu is a US-based software development company providing businesses worldwide with tailored software solutions from industry specialized developers.', 1, '2025-02-01 09:06:36', '2025-02-11 08:33:51'),
< /code>
Функция find_in_set работает со значениями, разделенными запятыми. их против стола campion_videos. Что должно произойти, так это то, что он должен сначала забрать таблицу ADS_OBJ_ID (идентификаторы, разделенные с запятой), а затем получить соответствующие записи из таблицы Client_Advertisements на основе этих идентификаторов. < /P>
Создал следующий запрос Laravel, но он неправильно функционирует: < /p>
$videoPath = asset('uploads/advertisement');
$campaignVideoList = CampionVideo::where('campion_id', $id)
->join('campions as c', 'c.id', '=', 'campion_videos.campion_id')
->leftJoin('client_advertisements as ca', function($join) {
$join->where('ca.id', DB::raw('FIND_IN_SET(ca.id, campion_videos.ads_obj_id)'));
})
->where('ca.status', 1)
->select('c.*', 'ca.*', DB::raw("CONCAT('{$videoPath}/', ca.video_upload) as video_url"), 'campion_videos.video_duration as totalVideoDuration')
->get();
print_r($campaignVideoList);die;
< /code>
< /li>
< /ol>
Правильный поиск данных: вы ожидали, что запросы SQL и LARAVE , campion_videos и client_advertisements) точно. Значения ads_obj_id из таблицы Campion_videos с использованием функции find_in_set.
Подробнее здесь: [url]https://stackoverflow.com/questions/79457575/how-to-resolve-this-laravel-eloquent-query-and-manage-it[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия