如何显示3个连接中单个项目的记录或数据

时间:2013-10-25 11:40:18

标签: mysql sql join left-join

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

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

2。 attribute_master,仅包含attribute_id和attribute_name,

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;

此查询显示以下结果:

enter image description here

现在我只想显示特定项目的数据。 假设我想要显示项Nokia Lumia 925的数据,并且它是prod_id = 12。 然后我将要做什么?

有人建议我要做什么吗?

3 个答案:

答案 0 :(得分: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;

答案 1 :(得分:1)

WHERE prod_name='Nokia Lumia 925' AND prod_id=12

答案 2 :(得分: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;