Выберите всех пользователей из таблицы, которые покупают 2 или более товаров из другой таблицы

#mysql

Вопрос:

Я новичок в MYSQL и настраивал что-то базовое, у меня есть несколько таблиц «Пользователь», «Покупка», «Пользователь элемента» и «Ключи общего доступа к элементу», «Покупка общих ключей с элементом», я хочу в основном найти запрос, который позволяет мне видеть, какие пользователи (uid) купили 2 или более элементов

Я собирался попробовать

 SELECT uid FROM user SELECT pid FROM Purchase SELECT iid FROM Item WHERE itype...  

А потом я теряюсь, извините, если это звучит запутанно.

Комментарии:

1. Я думаю, что лучше использовать запрос объединения для извлечения данных из двух таблиц

2. Вы должны указать другие поля для User , Purchase и Item . Кроме того, когда вы говорите, что купили 2 или более предметов, это один и тот же предмет или это могут быть разные предметы? Скажем, 2 или более кетчупа Хайнца или это нормально, 1 кетчуп Хайнца и 2 пакетика чая? Я спрашиваю об этом из WHERE itype -за вашего вопроса.

3. что-то вроде SELECT ... FROM ... JOIN .. ON ... GROUP BY uid HAVING COUNT(*) gt;= 2 может сработать

Ответ №1:

Вы сказали, что ключи общего доступа пользователя и элемента. Если это означает, что каждая строка в элементе содержит uid, то вы можете сделать это:

 SELECT uid, COUNT(uid)  FROM Item  GROUP BY uid  HAVING COUNT(uid) gt; 1