我有两个MySQL表 - 销售表:上选择不同的记录加入
+----------------+------------------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------------+------------------------------+------+-----+---------+-------+
| StoreId | bigint(20) unsigned | NO | PRI | NULL | |
| ItemId | bigint(20) unsigned | NO | | NULL | |
| SaleWeek | int(10) unsigned | NO | PRI | NULL | |
+----------------+------------------------------+------+-----+---------+-------+
和项目表:
+--------------------+------------------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------------+------------------------------+------+-----+---------+-------+
| ItemId | bigint(20) unsigned | NO | PRI | NULL | |
| ItemName | varchar(100) | NO | | NULL | |
+--------------------+------------------------------+------+-----+---------+-------+
销售表包含多条记录每个项目ID - 每个SaleWeek。我要选择通过连接两个表像这样出售的所有物品:
SELECT items.ItemName, items.ItemId FROM items
JOIN sales ON items.ItemId = sales.ItemId
WHERE sales.StoreID = ? ORDER BY sales.SaleWeek DESC;
然而,基于对每个SaleWeek多个条目,这是返回多个项目Id 值。我可以做一个独特的选择,只返回一个ItemID - 我不想要查询最新的SaleWeek,因为有些项目可能没有最新的条目SaleWeek所以我需要得到最后一个出售。我需要指定DISTINCT或使用左外部连接什么?
你试过DISTINCT吗?这可能会导致您的订购失败,具体取决于您使用的DBMS ... – 2010-01-15 00:18:55