Какой SQL-select: MySQl выборка один-ко-многим с объединением? Помогите с запросом SQL: Задача: Есть таблица (id, tovar_id, data) связь один ко многим, т.е. у tovar_id может быть несколько значений data, где каждое значение записывается в виде отдельной записи Надо: Составить выборку - вывести список tovar_id, где ОДНОВРЕМЕННО нексолько разных значений data (по списку). Т.е. не список всех записей по каждому входжению значения data, а список tovar_id, где ОДНОВРЕМЕННО встречаются ВСЕ перечисленные значения data Т.е. надо не по отдельности data 6 или 7, а только те tovar_id, где есть запись и для data 6 и для data 7, т.е. не показывать tovar_id, где есть data 6, а нет data 7 Как правильно составить запрос?
Для такого запроса можно использовать оператор GROUP BY в сочетании с условием HAVING COUNT(DISTINCT data) равным количеству перечисленных значений data.
Пример SQL-запроса:
SELECT tovar_id FROM table_name WHERE data IN ('значение1', 'значение2', 'значение3') GROUP BY tovar_id HAVING COUNT(DISTINCT data) = 3;
В данном случае вместо 'значение1', 'значение2', 'значение3' нужно указать перечисленные значения data, для которых нужно получить список tovar_id. Также необходимо заменить table_name на название вашей таблицы.
Этот запрос вернет список tovar_id, у которых одновременно есть записи для всех указанных значений data.
Для такого запроса можно использовать оператор GROUP BY в сочетании с условием HAVING COUNT(DISTINCT data) равным количеству перечисленных значений data.
Пример SQL-запроса:
SELECT tovar_id
FROM table_name
WHERE data IN ('значение1', 'значение2', 'значение3')
GROUP BY tovar_id
HAVING COUNT(DISTINCT data) = 3;
В данном случае вместо 'значение1', 'значение2', 'значение3' нужно указать перечисленные значения data, для которых нужно получить список tovar_id. Также необходимо заменить table_name на название вашей таблицы.
Этот запрос вернет список tovar_id, у которых одновременно есть записи для всех указанных значений data.