Я получил таблицу пользователей в моем проекте
id | name | user_group
-----+------------+----------------
1 | name | 1
2 | name | 1
3 | name | 2
4 | name | 2
5 | name | 2
6 | name | 2
7 | name | 2
------------------------------------
Каждый пользователь связан с группой
Также пользователи могут загружать изображения на сайт, поэтому я получил таблицу для изображений.
id | image_name | user_id | uploaded_date
------+---------------------+---------------+--------------------------
1 | dder.jpg | 1 | 2014-12-12 00:00:00
2 | dder.jpg | 1 | 2014-12-12 00:00:00
3 | dder.jpg | 2 | 2014-12-12 00:00:00
4 | dder.jpg | 3 | 2014-12-12 00:00:00
5 | dder.jpg | 6 | 2014-12-12 00:00:00
6 | dder.jpg | 7 | 2014-12-12 00:00:00
7 | dder.jpg | 7 | 2014-12-12 00:00:00
8 | dder.jpg | 5 | 2014-12-12 00:00:00
9 | dder.jpg | 2 | 2014-12-12 00:00:00
10 | dder.jpg | 1 | 2014-12-12 00:00:00
------------------------------------------------------------------------
Теперь мой вопрос: мне нужно получить список изображений, загруженных user_group = 2 в ДЭСК uploaded_date
Может кто-нибудь, пожалуйста, помогите мне с простым запросом?
заранее спасибо
Один из возможных подходов:
SELECT i.*
FROM images i
INNER JOIN users u
ON i.user_id = u.id
WHERE u.user_group = 2
ORDER BY i.uploaded_date DESC
демонстрация. Для производительности важно установить внешний ключ на user_id
колонка в images
таблица, которая ссылается id
колонка в users
Таблица.
Вы можете решить это так: http://sqlfiddle.com/#!2/28a18/1
SELECT img.image_name
FROM images img
INNER JOIN users usr
ON img.user_id = usr.id
WHERE usr.user_group = 2
ORDER BY img.uploaded_date DESC
Однако, если вы хотите, чтобы в какой-то момент пользователю было назначено более одной группы пользователей, у вас должно получиться что-то вроде этого: http://sqlfiddle.com/#!2/8f938/1