Как мне присоединиться к этим таблицам? - PullRequest
0 голосов
/ 07 февраля 2010

У меня есть две таблицы:

**WEEK**

-id

-week #

**ITEM**

-id

-name

-is_marked

-week #

Мой последний желаемый результат - иметь таблицу с ячейкой таблицы rowspan = "3" с week #, за которой следуют три результата для каждой недели из SELECT * FROM item WHERE week = week_number AND is_marked = 1

Я не знаю, нужно ли мне что-то присоединять, потому что мне не нужны никакие данные из таблицы WEEK, но я не совсем понимаю, как бы я перебрал результаты, чтобы получить желаемый результат. Мысли?

Ответы [ 2 ]

1 голос
/ 07 февраля 2010

Хорошо, некоторые мысли.

  1. Вам действительно нужна недельная таблица в базе данных? Какой цели это служит? Похоже, значение для таблицы элементов. Это не совсем сущность, поэтому может не потребоваться отдельная таблица IMO.

  2. Вы правы в том, что нечего объединять в двух таблицах. Если бы в таблице «Item» был номер недели, а не число, это имело бы смысл, за исключением моих комментариев в 1

  3. Почему только 3 предмета из каждой недели? Если вы действительно этого хотите, я бы порекомендовал вам заказывать по номеру недели в таблице позиций. Вы можете отказаться от других значений в коде. В этом случае используйте предложение order by.

  4. Или вы можете просмотреть все значения в таблице недель, для каждого выбрать из таблицы элементов, используя номер недели. Вы можете использовать предложение limit, чтобы вернуть только 3 элемента.

1 голос
/ 07 февраля 2010

Измените таблицу элементов, чтобы она содержала идентификатор недели, а не значение.

тогда вы можете сделать простое соединение, выполнив:

select i.name
from item i
inner join week w on w.id = i.id
where w.week = '2' and i.is_marked = '1'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...