ich zwei MySQL-Tabellen haben - ein Verkaufstisch:Wählen Sie verschiedene Datensätze auf einem Join
+----------------+------------------------------+------+-----+---------+-------+
| 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 | |
+----------------+------------------------------+------+-----+---------+-------+
und ein Artikel Tabelle:
+--------------------+------------------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------------+------------------------------+------+-----+---------+-------+
| ItemId | bigint(20) unsigned | NO | PRI | NULL | |
| ItemName | varchar(100) | NO | | NULL | |
+--------------------+------------------------------+------+-----+---------+-------+
Der Verkaufstisch für jeweils mehrere Datensätze enthält ItemID - eine für jede SaleWeek. Ich möchte alle Einzelteile durch die Verbindung der beiden Tabellen wie so verkauft wählen:
SELECT items.ItemName, items.ItemId FROM items
JOIN sales ON items.ItemId = sales.ItemId
WHERE sales.StoreID = ? ORDER BY sales.SaleWeek DESC;
Dies ist jedoch mehrere kehrt ItemId Werte auf der Grundlage der mehrere Einträge für jeden SaleWeek. Kann ich nur eine bestimmte Auswahl tun, um eine Rückkehr ItemID - ich will nicht für die neueste SaleWeek abfragen müssen, weil einige Elemente für die neueste SaleWeek so muss ich die letzte bekommen kann keinen Eintrag Verkauf. Muss ich angeben DISTINCT oder verwenden Sie eine LINKS OUTER JOIN oder etwas?
Haben Sie DISTINCT versucht? Je nachdem, welches DBMS Sie verwenden, kann es Ihre Bestellung vermasseln ... –