如何有条件地从不同表中的两列中进行选择

时间:2014-11-12 11:56:37

标签: mysql sql

我有两张桌子

1. products <id, taxon, .... >
2. tags <id, tag_name, product_id, value, ....>

我想在这两个表上加入(或做一些其他操作)以获得分类,但是基于特定tag_name的值。让我更清楚一点,如果产品标记有tag_name=typevalue=precious,我想将此标记值视为分类。

所以,如果我有以下条目:

<# product id:1, taxon:"Jewellery">
<# product id:2, taxon:"Apparel">
<tag id:1, tag_name:"type", product_id:1, value="Precious">

我想在结果表中使用以下内容

product_id   taxon_name
    1        Jewellery
    1        Precious
    2        Apparel

我如何形成这样的查询?

由于

1 个答案:

答案 0 :(得分:1)

这很棘手......

UNION可能会这样做。看看结果如何:

SELECT id,taxon 
 FROM products 
 UNION ALL (
     select product_id as id,value as taxon 
       from tags 
       where tag_name='type' and value='Precious'
  );

基本上,它会从产品中加载idtaxon,然后将tags表中的两个相关列追加到最后(以某种方式说)。