У меня есть таблица «продукты»Выбрать соответствующие данные из той же таблицы?
id | title | color_id (fk) | type_id (fk) | price_range_id (fk)
Я выполнить запрос на выборку:
SELECT * FROM products where id = 1
Мне нужно, чтобы получить продукты, связанные с одной и той же таблицы. Как мне это сделать? Поэтому мне нужно выбрать строку с идентификатором 1, а затем выбрать 10 других продуктов, которые имеют одинаковые colour_id
, type_id
и price_range_id
.
Кроме того, если 10 связанных продуктов не выбраны, мне нужно выбрать случайный случай, но это не должно включать уже выбранные строки.
Я не ожидаю, что кто-то здесь сделает всю работу, просто кто-нибудь может указать мне в правильном направлении, с чего начать эту проблему?
'self join' на различных полях, которые быстро станут уродливыми. –
Вы забыли рассказать нам: какую базу данных вы используете. Если хранимые процедуры являются опцией. Какой метод вы используете для доступа к базе данных? Клиент, JDBC, Perl, Python, PHP ????? Можете ли вы выполнить SQL в нескольких раундах или связаны с одной большой операцией SQL? Если вы используете язык программирования, это не имеет большого значения. Если это должно быть одно утверждение, я не вижу простого решения. –
Использование PHP и MYSQL и любого решения, не связанного с одним утверждением – panthro