SQL присоединиться к Laravel, как это сделать?


SQL присоединиться к Laravel, как это сделать?

20.02.2020 01:46:14 Просмотров 37 Источник

Помогите мне, пожалуйста, с соединениями, изучение SQL и соединения болезненны :(

У меня есть таблица: категории с именем столбца: имя, идентификатор

У меня есть таблица: sub_categories с именем столбца: ID

У меня есть таблица: provider_services с именем столбца: category_id & subcategory_id

Когда я делаю в фреймворк Laravel вид лезвия {{$provider->providerServices()->where("status",1)->count()}}

Я получу: 2

Это означает, что провайдер, имеет 2 услуги с category_id 2, 3 и subcategory_id 4,8

Вопрос: Как я могу присоединить эти данные к категориям таблицы и захватить имя категории с помощью cat_id & subcat_id?

  • Category_id 2 is-живопись
  • Category_id 3 является - сантехника
  • SubCategory_id это - Аква
  • SubCategory_id 8 is-тест

Итак, в результате мне нужно что-то иметь: живопись и аквагрим, сантехника и тест

Большое спасибо!

У вопроса есть решение - Посмотреть?

Ответы - SQL присоединиться к Laravel, как это сделать? / SQL join in Laravel, how to?

Является ответом!
Collin

20.02.2020 01:50:27

Внутреннее Предложение Соединения

Конструктор запросов может также использоваться для записи операторов join. Для выполнения базового "внутреннего соединения"можно использовать метод join на экземпляре построителя запросов. Первый аргумент, передаваемый методу join, - это имя таблицы, к которой необходимо присоединиться, в то время как остальные аргументы определяют ограничения столбца для соединения. Вы даже можете объединить несколько таблиц в одном запросе:

$users = DB::table('users')
            ->join('contacts', 'users.id', '=', 'contacts.user_id')
            ->join('orders', 'users.id', '=', 'orders.user_id')
            ->select('users.*', 'contacts.phone', 'orders.price')
            ->get();

Источник: https://laravel.com/docs/5.8/queries#joins

Приведенный выше пример можно легко изменить, чтобы он работал на вас. Функция join для производится следующим образом:

->join('table', 'column1', '=', 'column2')
EasyJob Meistars

20.02.2020 03:32:11

Странно, почему этот SQL-запрос возвращает общий статус категорий и подкатегорий, а не статус provider_services?

SELECT categories.name, categories.id, sub_categories.id as idPodKa, sub_categories.name as ImjaPodkategorij, provider_services.status as Status
FROM categories
LEFT JOIN sub_categories 
ON categories.id=sub_categories.category_id 
LEFT JOIN provider_services
ON categories.id=sub_categories.category_id=provider_services.status
where provider_services.status = 1
Помочь в развитии проекта:
Закрыть X