2014-02-08 5 views
0

У меня есть эти 2 таблицы:MySQL расширенный совет запрос

  1. элементы (описание идентификатор CategoryId)
  2. категории (ID имя родителя).

У меня есть 2 родителей, X и Y. Допустим, что X имеет 3 Чайлдс и Y имеет 5. Я хочу, чтобы запросить базу данных и извлекать все элементы по X или Y. от

Ex: если у меня есть 10 предметов с категориями 2, 3, 1, 1, 5, 3, 8, 9, 7, 6; на X parent у меня есть 1,2,3,5, 6 категорий. Каков правильный запрос для извлечения элементов? Я не очень хорошо разбираюсь в mysql, делаю простые запросы, мне просто нужны подсказки.

Благодаря

ответ

0

если вы хотите уникальный список категорий для одного элемента сделать это

select * from categories where itemid = 'some id'; 
or try this: 
select * from categories inner join items on items.id = categories.itemid where itemid = 'some id'; 

или если вам нужен уникальный список категорий для нескольких элементов попробовать это:

select distinct categories.name from categories inner join items on items.id = categories.itemid where itemid in ('some id', 'some other id', 'etc') 

, если у вас есть таблица M: N между элементом и категориями, это не сработает, и вам придется присоединиться к таблице M: N ... очевидно, что у вас будут разные имена и ключи.

извините, если это слишком просто.

+0

эй, спасибо за ваш ответ. Мне не нужно получать категорию, мне нужно получить список элементов, который установлен в родительской категории. например, 3 элемента имеют 3 разные категории, принадлежащие к родительской категории Y. Мне нужно получить эти 3 элемента на основе запроса к WHERE parent = 'Y' – barosus

+0

ok, они могут изменить логику и вернуть список идентификаторов для набора категорий ... например, выбрать item.name из items внутренние категории присоединения на items.id = categories.itemid where categories.id in (a, b, c) – markg

+0

спасибо, я следовал логике, и это сработало. жаль беспокоить вас снова, у меня есть эта плохая привычка говорить сначала и делать что-то позже. – barosus

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