4

我正在尝试显示来自 3 个单独表的数据。

1. product_master 包含有关产品的数据,如图像、价格、数量等。

2.只包含attribute_id 和attribute_name 的attribute_master,

3. product_attrib_master 包含prod_id 即外键、attribute_id 即外键和product_attribute_value 等数据。

现在我有以下查询:

SELECT
 pm.prod_name,
 am.attribute_name,
 pa.product_attribute_value
 FROM product_attrib_master pa
 LEFT JOIN attribute_master am
 ON pa.attribute_id = am.attribute_id
 LEFT JOIN product_master pm
 ON pa.prod_id=pm.prod_id
 ORDER BY pa.prod_id;

此查询显示以下结果:

在此处输入图像描述

现在我只想显示特定项目的数据。假设我想显示 item 的数据,Nokia Lumia 925它是prod_id = 12. 那我该怎么办?

有人建议我该怎么做吗?

4

3 回答 3

4

您需要在查询中添加 where 子句。尝试这个::

SELECT
 pm.prod_name,
 am.attribute_name,
 pa.product_attribute_value
 FROM product_attrib_master pa
 LEFT JOIN attribute_master am
 ON pa.attribute_id = am.attribute_id
 LEFT JOIN product_master pm
 ON pa.prod_id=pm.prod_id
WHERE pm.prod_name ='Nokia Lumia 925'
 and prod_id = 12
 ORDER BY pa.prod_id;
于 2013-10-25T11:41:50.203 回答
1
WHERE prod_name='Nokia Lumia 925' AND prod_id=12
于 2013-10-25T11:41:37.623 回答
1

您好,您需要添加将对结果数据应用过滤器的 WHERE子句。带有AND的WHERE子句告诉 sql 引擎我想要基于子句的过滤数据。

SELECT
    pm.prod_name,
    am.attribute_name,
    pa.product_attribute_value
FROM 
    product_attrib_master pa
LEFT JOIN 
    attribute_master am
ON 
    pa.attribute_id = am.attribute_id
LEFT JOIN 
    product_master pm
ON 
    pa.prod_id = pm.prod_id
WHERE 
    pm.prod_name = 'Nokia Lumia 925' AND pm.prod_id = 12
ORDER BY 
    pa.prod_id;
于 2016-09-02T09:21:59.463 回答