How can I combine result and subquery for IN comparison (mysql)

Posted by user325804 on Stack Overflow See other posts from Stack Overflow or by user325804
Published on 2010-04-26T09:08:37Z Indexed on 2010/04/26 9:13 UTC
Read the original article Hit count: 232

Filed under:
|
|
|

In order for a school project i need to create the following situation within one mysql query.

The situation is as such, that a child's tags and a parent's tags need to be combined into one, and compared to a site's tags, depending on a few extra simple equals to lines.

For this to happen I only see the option that the result of a subquery is combined with a sub query within that query, as such:

SELECT tag.*, (SELECT group_concat(t1.id, ',', (SELECT
      group_concat(tag.id)
    FROM
      adcampaign
      INNER JOIN adcampaign_tag ON adcampaign.id = adcampaign_tag.adcampaign_id
      INNER JOIN tag ON adcampaign_tag.tag_id = tag.id
    WHERE
      adcampaign.id = 1))
    FROM
      ad, ad_tag, tag AS t1
    WHERE
      ad.id = ad_tag.ad_id AND
      ad_tag.tag_id = t1.id AND
      ad.adcampaign_id = 1 AND 
      ad.agecategory_id = 1 AND 
      ad.adsize_id = 1 AND 
      ad.adtype_id = 1) as tags
FROM tag WHERE tag.id IN tags

But the IN comparison only returns the first result because now the tags aren't a list but a concanated string.

Anyone got any suggestion on this? I really need a way to combine it into one array

© Stack Overflow or respective owner

Related posts about mysql

Related posts about subquery