我正在尝试显示来自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;
此查询显示以下结果:
现在我只想显示特定项目的数据。
假设我想要显示项Nokia Lumia 925
的数据,并且它是prod_id = 12
。
然后我将要做什么?
有人建议我要做什么吗?
答案 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;