簡體   English   中英

MySQL從數組中獲取行

[英]MySQL get rows from array

我的項目中有一個用戶表

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的DESC上傳的圖片列表

任何人都可以通過簡單的查詢幫助我嗎?

提前致謝

一種可能的方法:

    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

演示 為了提高性能,重要的是在images表的user_id列上設置外鍵,該外鍵引用users表的id列。

您可以這樣解決: 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

但是,如果您希望在某個時候為一個用戶分配一個以上的user_group,則應該具有以下內容: http ://sqlfiddle.com/#!2/8f938/1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM