2013-03-05 4 views
0

У меня есть 2 таблицы: tbImages, tbUsersКак сделать выбор из 3 таблиц?

tbImages имеет много путей изображений с уникальными идентификаторами tbUsers имеет много пользователей с уникальными идентификаторами ...

Я-код страницы, которые делают доставку изображения ... Эта страница покажет все заказы изображений по id ... Администратор wil выбирает 7 изображений, чтобы отправить их кому-то по электронной почте ... Мне нужно будет регистрировать, когда и сколько раз какой-то пользователь получил это изображение (3-й стол, возможно) ... В этом проблема ... У меня есть ЗАКАЗАТЬ изображения по дате регистрации .. Изображения, которые уже были отправлены, должны появиться в конце этой страницы доставки ...

Каков лучший способ сделать это? У tbImages есть много столбцов по одному для каждого пользователя? Третья таблица (tbDelivered) по одной строке для каждого пользователя с полученными «изображениями» столбцов? Как сделать этот SELECT, чтобы показать уже отправленные изображения в конце?.

ответ

1

3-й стол, связанный с вашим imageID идентификатором пользователя (реляционная таблица). Затем вы можете использовать операторы JOIN в своем запросе. Например:

relational_table 
    imageID 
    userID 
    sendCount 

Запрос может быть:

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

Это даст вам обратно несколько раз, что образ был отправлен к этому пользователю.

+0

право ... так как это выбор? вы можете описать? Im noobie вместе со статутами –

0

Вам придется создать 3-ю таблицу, которая будет содержать:

  • Изображение ID
  • Пользователь ID
  • Количество

И вы будете делать отборное заявление, что будет выглядеть так:

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

Чтобы показать те, которые еще не были доставлены вам придется добавить в конце этого:

AND quantity = 0; 

Я надеюсь, что это помогает

Смежные вопросы