2013-03-05 52 views
0

我有2個表:tbImages,tbUsers如何使用3個表格進行選擇?

tbImages有很多獨特的IDS tbUsers有很多獨特的IDS用戶的圖像的路徑...

我將代碼的網頁,使的交付圖像...此頁面將顯示按ID排序的所有圖像...管理員將選擇7張圖像通過電子郵件發送給某些用戶...我將不得不註冊某個用戶何時以及多少次接收該圖像(第三張表可能)... 這裏是問題...我必須通過註冊日期訂購圖像..已發送的圖像必須出現在交付頁面末尾...

有什麼更好的方法來做到這一點? tbImages對每個用戶都有很多列?第三張表(tbDelivered)每列用戶都有一列'收到'圖像? ?如何讓這個SELECT在最後顯示已經發送的圖像?

回答

1

將您的imageID與用戶ID(關係表)關聯起來的第3個表。然後,您可以在查詢中使用JOIN語句。例如:

relational_table 
    imageID 
    userID 
    sendCount 

查詢可能是:

SELECT sendCount 
FROM relational_table 
WHERE imageID = $imageID 
AND userID = $userID 

那會退給你的次數,圖像已被髮送到用戶的數量。

+0

右...所以這是怎麼選擇?你可以形容嗎? Im noobie加入statemens – 2013-03-05 23:09:01

0

您必須創建一個第三個表將包含:

  • 圖像ID
  • 用戶ID
  • 數量

而且你會做的SELECT語句將如下所示:

SELECT tbImages.imageID, tbDelivered.quantity 
FROM tbImages, tbDelivered 
WHERE tbImages.imageID = tbDelivered.imageID; 

爲了表明尚未交付,你將不得不在它的末尾添加的:

AND quantity = 0; 

我希望這有助於