MySQL购物项目表与大小表

时间:2013-04-24 21:50:30

标签: php mysql left-join

请伸出援助之手。

我有一个包含以下内容的项目表

item_id(pk), name, price, color

然后我有一张尺寸表

item_id(fk), size, count, sequence

我正在尝试允许用户在LEFT JOIN语句中搜索项目

SELECT table.*, sizes.* FROM item LEFT JOIN sizes ON size.item_id = item.item_id

问题是我需要结果不重复多个尺寸的项目,我也想知道如何只显示尺寸大于0的项目

希望有人可以提供帮助

1 个答案:

答案 0 :(得分:1)

您需要使用一些聚合和分组

首先只选择输出中需要的字段(例如,你不想要大小,所以不要包括它)

你想要'count'字段的总和 - 所以使用sum函数

您需要按照您未汇总的字段进行分组

你可以使用where子句(假设没有负数)或者有一个子句来排除零行

SELECT item_id, item.name, item.price, item.color, sum(size.count) 
FROM item LEFT JOIN sizes 
where sizes.count > 0
ON sizes.item_id = item.item_id
group by item_id, item.name, item.price, item.color