Выберите оператор, используя WHERE x IN (SELECT ...) - PullRequest
0 голосов
/ 04 декабря 2009

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

[ product_to_category
---------------------
product_id
category_id


[ category
---------------------
category_id
parent_id

Мне нужно получить все product_id с category.parent_id '39'. Вот что я пытаюсь, но он возвращается пустым, когда есть хотя бы несколько сотен:

SELECT
product_id
FROM
product_to_category
WHERE
category_id IN (
SELECT parent_id FROM category WHERE parent_id = '39'
)

Возможно ли то, что я пытаюсь сделать здесь?

Ответы [ 3 ]

6 голосов
/ 04 декабря 2009

Понял:

SELECT product_id FROM product_to_category INNER JOIN категория ON product_to_category.category_id = category.category_id И category.parent_id = 39

2 голосов
/ 04 декабря 2009

Попробуйте это:

SELECT product_id
FROM product_to_category p2c
   Join category c 
      On c.category_id = p2c.category_id
Where parent_id = '39'

Что вы делали неправильно в вашем запросе:

 SELECT product_id
 FROM product_to_category
 WHERE category_id IN 
     (SELECT category_id   -- THIS IS WHERE YOUR SQL WAS INCORRECT
      FROM category WHERE parent_id = '39')
0 голосов
/ 04 декабря 2009
select product_id from product_to_category as ptc
inner join category as c
    on ptc.category_id = c.parent_id
where c.parent_id = 39
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...