Правильный JOIN для выборки из двух таблиц

161
27 июня 2018, 10:30

запутался я в джойнах. Прошу помощи))
Короче, есть таблицы products и categories.
В первой лежат товары, у каждого есть свой product_id. Во второй лежат пары данных: "product_id (id товара)" - "category_id (id его рубрики)".
Есть также product_id одного конкретного товара.
Нужно вывести любые N товаров, находящихся в той же рубрике.
Помогите, пожалуйста, составить правильный SQL-запрос?

SELECT * FROM products pr 
LEFT JOIN categories pc ON (pc.product_id = '$product_id') 
GROUP BY pc.category_id 
ORDER BY RAND() LIMIT 4
Answer 1
SELECT p.*
FROM products p, categories c1, categories c2
WHERE c2.product_id = $product_id
  AND c1.category_id = c2.category_id 
/*  AND c1.product_id != $product_id */
  AND c1.product_id = p.product_id 
ORDER BY RAND() LIMIT 4

Комментарий - на случай, если в списке выводимых не должен быть исходный.

READ ALSO
Два header в одном файле

Два header в одном файле

Такая проблема, что 2 header

149
Как выполнить UPDATE в mysql циклом foreach php?

Как выполнить UPDATE в mysql циклом foreach php?

Есть массив, нужно значениями из массива проапдейтить значения из БДПробовал сделать так:

173
Путь Back-end разработчика [закрыт]

Путь Back-end разработчика [закрыт]

Хотел бы пойти в сторону back-end программированияПосмотрел, какой лучше язык выбрать, и остановился на php

175
Есть два инпута текстбокса, нужно в третью выводить их значение

Есть два инпута текстбокса, нужно в третью выводить их значение

Прошу вас дайте мне совет или подсказку, я то не как не могу разобраться что к чему, потому что впервые сталкиваюсь Вообщем есть 3 input type=textboxПосле...

190