选择行作为列

时间:2015-03-31 20:14:42

标签: sql postgresql

 name  | value  | product_id 
-------+--------+------------
 color | red    |          9
 style | modern |          9
 brand | xxx    |          1
 color | blue   |          4
 color | red    |          1

如何选择产品ID,其中brand = xxx和color = red?这是id = 1的产品。

2 个答案:

答案 0 :(得分:0)

SELECT *
FROM YourTable T
WHERE name = 'color' 
AND value = 'red'
AND EXISTS( SELECT 1 FROM YourTable
            WHERE name = 'brand'
            AND value = 'xxx'
            AND product_id = T.product_id)

答案 1 :(得分:0)

SELECT product_id FROM tbl WHERE "name"='color' AND "value"='red'
INTERSECT
SELECT product_id FROM tbl WHERE "name"='brand' AND "value"='xxx';