Heim > Datenbank > MySQL-Tutorial > Hauptteil

So verwenden Sie eine SQL-Anweisung in MySQL, um mehrere SQL-Anweisungen zu kapseln, die keiner Ergebnismenge zugeordnet werden können

王林
Freigeben: 2023-05-27 10:24:47
nach vorne
697 Leute haben es durchsucht

Problembehandlungsprozess

Eine kurze Erläuterung des Geschäftsszenarios. Um das Verständnis zu erleichtern, wurden die Geschäftsanforderungen vereinfacht.

Jetzt gibt es eine Vertriebsaktivität, um Vertriebsaktivitäten durchzuführen. Sobald jemand über den Link zur Vertriebsaktivität kauft, kann er die Vertriebsaktivitäten auch direkt erwerben der Link. Es wird jedoch keine Ausschüttungserlöse geben. Hinsichtlich der Tabellenstruktur werden alle Bestellungen in der Bestelltabelle order gespeichert. Für diejenigen mit Vertriebsbeziehungen werden die Vertriebsbindungsinformationen (Händler und verteilte Person) in recorderfasst >In der Tabelle werden für diejenigen, die direkt ohne Vertrieb gekauft wurden, keine Datensätze zur Tabelle record hinzugefügt. Jetzt müssen wir die Gesamtzahl der Bestellungen und Vertriebsdatensätze an diesem Tag zählen, vorausgesetzt, der Tag ist der 08.11.2022. order中,对于存在分销关系的会将分销绑定信息(分销人与被分销人)记录到record表中,不通过分销直接购买的不会在record表中添加记录。现在要求统计一下当天的订单总数与分销记录总数,假设当天为2022.11.08。

如果是单独统计计算很简单,直接统计总数就可以:

统计当天的总订单数:

SELECT COUNT(1) total_couut FROM order WHERE DATE_FORMAT(order_create_time,'%Y-%m-%d') = '2022-11-08'
Nach dem Login kopieren

统计当天的分销总的分销记录数:

SELECT COUNT(1) record _count FROM record WHEREDATE_FORMAT(create_time,'%Y-%m-%d') = '2022-11-08'
Nach dem Login kopieren

但是如何将两个不同的统计信息封装到一个结果集中,这里提供一种处理方案,使用union all

Wenn es sich um eine separate statistische Berechnung handelt, ist es sehr einfach, einfach die Gesamtzahl direkt zählen:

Statistik der Gesamtzahl der Bestellungen am Tag:

SELECT COUNT(1)  total_couut,0 record_count FROM order WHERE DATE_FORMAT(order_create_time,'%Y-%m-%d') = '2022-11-08'
union all 
SELECT 0 total_count,COUNT(1) record _count FROM record WHEREDATE_FORMAT(create_time,'%Y-%m-%d') = '2022-11-08'
Nach dem Login kopieren

Statistik der Verteilung des Tages Gesamtzahl der Verteilungsdatensätze:

select sum(t.total_count) total_count, sum(t.record_count) record_count from
(SELECT COUNT(1)  total_couut,0 record_count FROM order WHERE DATE_FORMAT(order_create_time,'%Y-%m-%d') = '2022-11-08'
union all 
SELECT 0 total_count,COUNT(1) record _count FROM record WHEREDATE_FORMAT(create_time,'%Y-%m-%d') = '2022-11-08') t
Nach dem Login kopieren
Aber wie man zwei verschiedene statistische Informationen kombiniert. In einer Ergebnismenge gekapselt, hier ist eine Verarbeitungslösung: Verwenden Sie union all, um parallele Abfragen durchzuführen, und führen Sie dann Summationsabfragen durch. Die spezifische Implementierungsmethode ist wie folgt.

So verwenden Sie eine SQL-Anweisung in MySQL, um mehrere SQL-Anweisungen zu kapseln, die keiner Ergebnismenge zugeordnet werden können1. Verwenden Sie Union All, um eine parallele Abfrage durchzuführen

Um sicherzustellen, dass die abgefragten Parameterinformationen konsistent sind, wird die Gesamtzahl der Verteilungsdatensätze beim Abfragen der Gesamtzahl der Bestellungen ergänzt, und die Gesamtzahl der Bestellungen wird ergänzt, wenn Die spezifische Implementierung lautet wie folgt:

rrreee

Die Abfrageergebnisse lauten wie folgt:

So verwenden Sie eine SQL-Anweisung in MySQL, um mehrere SQL-Anweisungen zu kapseln, die keiner Ergebnismenge zugeordnet werden können2. Jetzt wurden die Gesamtzahl der Bestellungen und die gesamten Verteilungsdatensätze abgefragt Als nächstes muss die Verarbeitungsmethode in eine Ergebnismenge gekapselt werden, nämlich die direkte Summierung. Da die entsprechenden Feldwerte alle 0 sind. Die spezifische Implementierung lautet wie folgt:

rrreee🎜Die Abfrageergebnisse lauten wie folgt: 🎜🎜🎜🎜

Das obige ist der detaillierte Inhalt vonSo verwenden Sie eine SQL-Anweisung in MySQL, um mehrere SQL-Anweisungen zu kapseln, die keiner Ergebnismenge zugeordnet werden können. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage