Angenommen, ich habe eine Tabelle, nennen wir sie "Kauftabelle" in SQL Server, die den Kauf durch den Benutzer darstellt.In SQL Server wie man einige bedeutungsvolle Daten von einer Chronik ähnlichen Tabelle erhält?
Table name: purchase
purchase_id buyer_member_id song_id
1 101 1001
2 101 1002
3 102 1001
4 102 1003
5 103 1001
6 103 1003
7 103 1004
Jetzt habe ich versucht, einige Statistiken aus dieser Tabelle zu machen. Ich will wissen, wer beiden Songs gekauft hat 1001 und 1003.
select distinct buyer_member_id from purchase where
buyer_member_id in (select buyer_member_id from purchase where song_id = 1001)
and buyer_member_id in (select buyer_member_id from purchase where song_id = 1003)
Dies funktioniert aber, wenn wir mehr und mehr Kriterien die Gleichung hinzuzufügen, wurde es langsamer und langsamer. Es ist fast unmöglich, etwas zu forschen wie Leute, die a, b und c kaufen, aber nicht d oder f. Ich verstehe, dass die Natur dieses und die Verwendung von „wo someid in (select someid aus der Tabelle, wo etwas) ist wahrscheinlich nicht der beste Weg, es zu tun.
Frage ist, gibt es einen besseren Weg?
Danke! Ich wusste nicht, dass dieses Keyword hat, große Hilfe! – shawhu