So fragen Sie Daten aus mehreren unabhängigen Tabellen und Paging in MySQL ab

So fragen Sie Daten aus mehreren unabhängigen Tabellen und Paging in MySQL ab

Mysql mehrere unabhängige Tabellen Abfragedaten und Paging

Funktionale Anforderungen

Nehmen Sie die gewünschten Daten aus drei Tabellen ohne Primär- und Fremdschlüsselzuordnungen und paginieren Sie sie.

Datenbanktabellenstruktur

Obsttisch:

Bildbeschreibung hier einfügen

Nüsse Tabelle:

Bildbeschreibung hier einfügen

Getränkekarte:

Bildbeschreibung hier einfügen

Der Aufbau der Datenbank kann beliebig erfolgen, wichtig ist die Methode.

Verwenden Sie hauptsächlich den UNION ALL-Operator

Der Operator UNION ALL wird verwendet, um die Ergebnismengen von zwei oder mehr SELECT-Anweisungen zu kombinieren.

Beachten Sie, dass die SELECT-Anweisungen innerhalb von UNION ALL die gleiche Spaltenanzahl haben müssen. Spalten müssen außerdem ähnliche Datentypen aufweisen. Darüber hinaus muss die Reihenfolge der Spalten in jeder SELECT-Anweisung dieselbe sein; außerdem sind die Spaltennamen im UNION ALL-Ergebnissatz immer identisch mit den Spaltennamen in der ersten SELECT-Anweisung in UNION ALL.

//Detaillierte SQL-Anweisung select * FROM
(
	(Wählen Sie FID, FName, Preis und Art aus Früchten aus)
	UNION ALLE
	(Wählen Sie nid,name,price,6 als Typ aus nut)
	UNION ALLE
	(wählen Sie did,dname,price,7 als Typ aus Getränken aus)
	
) als fnd-Limit 0,10 -----fnd ist der Alias ​​der Tabelle

Endergebnis

Bildbeschreibung hier einfügen

Lösung für das Paging-Problem bei der Abfrage mehrerer Tabellen in MySQL

MySQL Eins-zu-viele-Paging-Problem

Abteilungstabelle: tbl_dept

Mitarbeitertabelle: tbl_emp

Datenbank-SQL-Datei

 
DATENBANK ERSTELLEN /*!32312 WENN NICHT VORHANDEN */`ssm-crud` /*!40100 STANDARDZEICHENSATZ utf8 */;
 
VERWENDEN Sie „ssm-crud“;
 
/*Tabellenstruktur für Tabelle `tbl_dept` */
 
Tabelle löschen, wenn `tbl_dept` vorhanden ist;
 
Tabelle „tbl_dept“ erstellen (
  `dept_id` int(11) NICHT NULL AUTO_INCREMENT,
  `Abteilungsname` varchar(255) DEFAULT NULL,
  PRIMÄRSCHLÜSSEL (`dept_id`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;
 
/*Daten für die Tabelle `tbl_dept` */
 
in `tbl_dept`(`dept_id`,`dept_name`) Werte einfügen 
(1,'Technische Abteilung'),
(2,'Wirtschaftsabteilung'),
(6, „Verkaufsabteilung“),
(7, „Personalabteilung“);
 
/*Tabellenstruktur für Tabelle `tbl_emp` */
 
Tabelle löschen, wenn `tbl_emp` vorhanden ist;
 
TABELLE ERSTELLEN `tbl_emp` (
  `emp_id` int(11) NICHT NULL AUTO_INCREMENT,
  `emp_name` varchar(255) DEFAULT NULL,
  `emp_gender` char(1) DEFAULT NULL,
  `emp_email` varchar(255) DEFAULT NULL,
  `d_id` int(11) DEFAULT NULL,
  PRIMÄRSCHLÜSSEL (`emp_id`),
  SCHLÜSSEL `FK_tbl_emp` (`d_id`),
  EINSCHRÄNKUNG `FK_tbl_emp` FREMDER SCHLÜSSEL (`d_id`) REFERENZEN `tbl_dept` (`dept_id`)
) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8;
 
/*Daten für die Tabelle `tbl_emp` */
 
in Werte `tbl_emp`(`emp_id`,`emp_name`,`emp_gender`,`emp_email`,`d_id`) einfügen 
(1,'xiaoshen','2',NULL,6),
(4,'Xiaoming','1',NULL,1),
(5,'xiaohong','2',NULL,2),
(6,'xiaohei','2',NULL,6),
(7,'xiaozhang','1',NULL,1),
(8,'xiaogao','1',NULL,1),
(9,'xiaohua','1',NULL,1),
(10,'xiaoyan','2',NULL,1),
(11,'xiaohai','2',NULL,2),
(12,'xiaoqiang','1',NULL,6),
(13,'xiaoqi','2',NULL,7);

Paging-Fehler beim Schreiben der Methode (Hauptabfrage-Mitarbeitertabelle)

Wählen Sie * aus tbl_emp e
LINKS VERBINDEN 
tbl_dept d
 
EIN d.dept_id = e.d_id
 
GRENZE 1,10

Lösen Sie das Problem mithilfe einer Unterabfrage

WÄHLEN
        *
    AUS
     (
       WÄHLEN
       *
        AUS
        tbl_emp e
        LINKS VERBINDEN 
    tbl_dept d
        EIN d.dept_id = e.d_id
        
        GRUPPE NACH e.d_id
        GRENZE 1,10
 
     )
 
      LINKS JOIN tbl_dept d
        EIN d.dept_id = e.d_id

Der folgende Code ist irrelevant und dient nur zur Sicherung

WÄHLEN
        ft.id,
        ft.partner_id AS Partner-ID,
        ft.code,
        ft.end_update_date AS endUpdateDate,
        ft.name ,
        ft.Typ,
        ft.Fläche,
        ft.is_default AS istStandard,
        fp.id fpId,
        fp.shop_id AS fpShopId ,
        fp.provice_id AS fpProviceId ,
        fp.provice_name AS fpProviceName ,
        fp.start_num AS fpStartNum ,
        fp.start_fee AS fpStartFee ,
        fp.increase_num AS fpIncreaseNum ,
        fp.increase_fee AS fpIncreaseFee,
        fp.code AS fpCode,
        fp.provice_text AS fpProviceText ,
        fp.template_id AS fpTemplateId
    AUS
     (
       WÄHLEN
        f.id,
        f.partner_id ,
        f.Code,
        f.end_update_date ,
        f.name ,
        f.Typ,
        f.Bereich,
        f.ist_standardmäßig,
        f.is_del,
        f.Erstellungsdatum
        AUS
        bus_freight_template f
        LINKS JOIN bus_freight_provice p
        EIN f.id = p.template_id
        WO f.code = p.code
        UND f.code = #[code]
        GROUP BY f.id
        LIMIT #{startPage},#{pageSize}
 
     ) Fuß
 
      LINKS JOIN bus_freight_provice fp
        EIN ft.id = fp.template_id
    WO ft.code = fp.code
      UND fp.template_id IST NICHT NULL
      UND ft.code = #[code]
      UND fp.is_del = '0'
      UND ft.is_del = '0'
 
      Sortieren nach ft.create_date desc

Das Obige ist meine persönliche Erfahrung. Ich hoffe, es kann Ihnen als Referenz dienen. Ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen werden.

Das könnte Sie auch interessieren:
  • Implementierung der MySQL-Abfrageoptimierung für große Seiten für Millionen von Daten
  • So implementieren Sie eine Paging-Abfrage in MySQL
  • Techniken zur Optimierung von MySQL-Paging-Abfragen
  • Sortierung und Paginierung von MySQL-Abfragen
  • Tutorial zur MySQL-Optimierung: Große Paging-Abfrage
  • So implementieren Sie Paging-Abfragen mit MySQL

<<:  Der Inhalt des häufig verwendeten Eingabetextfelds wird automatisch vertikal zentriert und der Standardeingabeaufforderungstext ist leer, wenn darauf geklickt wird

>>:  js-Simulation, um den Effekt der Bildvergrößerung auf der Jingdong-Detailseite zu erzielen

Artikel empfehlen

Implementierung des Vue-Top-Tags-Browserverlaufs

Inhaltsverzeichnis Unsinn Implementierte Funktion...

Kopieren und Einfügen ist der Feind der Verpackung

Bevor wir über OO, Entwurfsmuster und die vielen o...

So installieren und konfigurieren Sie WSL unter Windows

Was ist WSL Zitat aus der Baidu-Enzyklopädie: Das...

Linux-Grundlagen-Tutorial: Sonderberechtigungen SUID, SGID und SBIT

Vorwort Für Datei- oder Verzeichnisberechtigungen...

Docker-Compose-Schritte zum Konfigurieren der Spring-Umgebung

Vor Kurzem musste ich das Projekt für die Mitglie...

Eine kurze Analyse des Zustandsverständnisses von React

Wie definiert man komplexe Komponenten (Klassenko...

Koexistenz von Python2 und Python3 unter einem CentOS7-System

Der erste Schritt besteht darin, die Versionsnumm...

Informationen zu WSL-Konfigurations- und Änderungsproblemen in Docker

https://docs.microsoft.com/en-us/windows/wsl/wsl-...

Grundlegende Verwendung und Fallstricke der JavaScript-Array-Methode sort()

Vorwort Bei der täglichen Codeentwicklung gibt es...

Einige Hinweise zur Installation eines Fastdfs-Images im Docker

1. Bereiten Sie die Docker-Umgebung vor 2. Suchen...

Lösung zum automatischen Stoppen des MySQL-Dienstes

Dieser Artikel stellt hauptsächlich die Lösung fü...