MySQL получает строки из массива

Я получил таблицу пользователей в моем проекте

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

Может кто-нибудь, пожалуйста, помогите мне с простым запросом?

заранее спасибо

0

Решение

Один из возможных подходов:

    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 Таблица.

0

Другие решения

Вы можете решить это так: 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

0

По вопросам рекламы [email protected]