Sélectionner des enregistrements sur une jointure
J'ai deux tables mysql - une table de vente:
+----------------+------------------------------+------+-----+---------+-------+
| 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 | |
+----------------+------------------------------+------+-----+---------+-------+
et une table articles:
+--------------------+------------------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------------+------------------------------+------+-----+---------+-------+
| ItemId | bigint(20) unsigned | NO | PRI | NULL | |
| ItemName | varchar(100) | NO | | NULL | |
+--------------------+------------------------------+------+-----+---------+-------+
Les ventes table contient plusieurs enregistrements pour chaque ItemID - un pour chaque SaleWeek. Je veux sélectionner tous les articles sont vendus par de joindre les deux tables de la sorte:
SELECT items.ItemName, items.ItemId FROM items
JOIN sales ON items.ItemId = sales.ItemId
WHERE sales.StoreID = ? ORDER BY sales.SaleWeek DESC;
Cependant, c'est le retour de plusieurs ItemId valeurs basées sur les entrées multiples pour chaque SaleWeek. Puis-je faire un distinct sélectionnez pour retourner uniquement un ItemID - je ne veux pas de requête pour la dernière SaleWeek parce que certains articles peuvent ne pas avoir une entrée pour la dernière SaleWeek donc j'ai besoin d'obtenir de la dernière vente. Ai-je besoin de préciser DISTINCTES ou utiliser un JOINTURE EXTERNE GAUCHE ou quelque chose?
OriginalL'auteur George | 2010-01-15
Vous devez vous connecter pour publier un commentaire.
Un
DISTINCT
devriez faire ce que vous êtes à la recherche pour:Qui ne revenir que distinctes
items.ItemName, items.ItemId
tuples.OriginalL'auteur Kaleb Brasee
Vous aviez commentaire à propos de la vente la semaine de trop. Et de vouloir la semaine la plus récente, vous pouvez essayer d'utiliser un GROUPE PAR
Vous pourriez avoir à changer l'ORDRE PAR l'ordinal de la 3ème colonne de référence si vous le souhaitez en fonction de cette colonne.. Cette requête vous donnera chaque élément distinct ET la semaine la plus récente, il a été vendu.
OriginalL'auteur DRapp
OriginalL'auteur Suresh Kumar Amrani
Nous pouvons utiliser ceci:
OriginalL'auteur sivaprakash