Составление SQL запроса к 2 таблицам

292
03 мая 2017, 09:23

Есть SQL запрос - ('SELECT * FROM products WHERE category_id = '.$category_id) Он выводит список продуктов из products, у которых категория = $category_id. БД проста - таблица products и category, products.category_id связан с category.id. Ключевой вопрос: как сделать, чтобы можно было найти продукты по названию категории, а не по ID? Т.е. сначала запрос посылается к таблице category, чтобы найти id нужной категории, а потом уже по этому id делается выборка из таблицы products. Делать 2 запроса к БД не хочется. Пытался сделать так: ('SELECT * FROM products INNER JOIN category ON category.name = '.$category_name.'WHERE products.category_id = category.id') Но поинмаю, что делаю какую-то хрень. Скажите, как это сделать 1 запросом к БД? Заранее спасибо!

Answer 1

Если я понял правильно, то так:

$sql = "SELECT p.* 
        FROM products p 
        JOIN category cat
        ON p.category_id  = cat.id
        WHERE cat.name = '{$category_name}'";

то есть, как раз-таки, JOIN делаем по идентификатору категории, а условие выборки WHERE по имени

READ ALSO
Не работает сортировка по двум полям

Не работает сортировка по двум полям

Есть простая таблица с 4 полями: id(int), text(text), parent_id(int), date_x(timestamp) Отсортировать надо что бы было так:

269
Как загружать файлы многопоточно?

Как загружать файлы многопоточно?

У меня есть определенное количество файлов, которые нужно загрузить на устройствоВсе что нужно для загрузки из сети есть (Имею адрес файла)

341
Поиск ближайшего времени из списка

Поиск ближайшего времени из списка

Добрый деньУ меня есть строка, в ней расположено время ("10:00; 10:20, 09:40, и т

315