Dieser Artikel stellt hauptsächlich die relevanten Informationen zum Mysql-Beitrittsvorgang vor. Freunde, die sie benötigen, können sich auf
Arten des Beitritts
1. Innerer Join: Ein Join, der einen Datensatz bildet, indem er die Datensätze kombiniert, deren Felder in den beiden Tabellen eine Join-Beziehung haben und mit der Join-Beziehung übereinstimmen. 2. Äußere Verknüpfung: unterteilt in äußere linke Verknüpfung und äußere rechte Verknüpfung.Fallhintergrund
create table java (name varchar(255)); insert into java values ('java1'),('java2'),('blue'); create table mysql (name varchar(255)); insert into mysql values ('mysql1'),('mysql2'),('blue');
Inner Join
select * from java,mysql where java.name=mysql.name; SELECT * FROM java JOIN mysql ON java.name=mysql.name; SELECT * FROM java INNER JOIN mysql ON java.name=mysql.name; SELECT * FROM java CROSS JOIN mysql ON java.name=mysql.name; SELECT * FROM java STRAIGHT_JOIN mysql ON java.name=mysql.name;
+------+------+ | name | name | +------+------+ | blue | blue | +------+------+
join_table: table_reference [INNER | CROSS] JOIN table_factor [join_condition] | table_reference STRAIGHT_JOIN table_factor | table_reference STRAIGHT_JOIN table_factor ON condition
Outer Join
Linker JoinSELECT * FROM java LEFT JOIN mysql ON java.name=mysql.name;
+-------+------+ | name | name | +-------+------+ | java1 | NULL | | java2 | NULL | | blue | blue | +-------+------+
zwischen der Java-Tabelle und der MySQL-Tabelle .
Wenn es im ON- oder USING-Abschnitt des LEFT JOIN keinen passenden Datensatz für die rechte Tabelle gibt, wird für die rechte Tabelle eine Zeile verwendet, in der alle Spalten auf NULL gesetzt sind. Wenn eine Tabelle kein Gegenstück inanderen Tabellen hat, können Sie diese Methode verwenden, um Datensätze in solchen Tabellen zu finden:
SELECT * FROM java LEFT JOIN mysql ON java.name=mysql.name WHERE mysql.name IS NULL;
Right Join
SELECT * FROM java RIGHT JOIN mysql ON java.name=mysql.name;
+------+--------+ | name | name | +------+--------+ | NULL | mysql1 | | NULL | mysql2 | | blue | blue | +------+--------+
Die Syntax des Outer Joins
join_table:| table_reference LEFT [OUTER] JOIN table_reference join_condition | table_reference NATURAL [LEFT [OUTER]] JOIN table_factor | table_reference RIGHT [OUTER] JOIN table_reference join_condition | table_reference NATURAL [RIGHT [OUTER]] JOIN table_factor
USING(column_list)-Klausel
wird verwendet, um eine Reihe von Spalten zu benennen, die in beiden Tabellen gleichzeitig vorhanden sein müssenSELECT java.*,mysql.* FROM java LEFT JOIN mysql USING (name);
+-------+------+ | name | name | +-------+------+ | java1 | NULL | | java2 | NULL | | blue | blue | +-------+------+
Die Reihenfolge der Operationen des Joins
SELECT * FROM t1 LEFT JOIN (t2, t3, t4) ON (t2.a=t1.a AND t3.b=t1.b AND t4.c=t1.c); --相当于 SELECT * FROM t1 LEFT JOIN (t2 CROSS JOIN t3 CROSS JOIN t4) ON (t2.a=t1.a AND t3.b=t1.b AND t4.c=t1.c)
SELECT t1.id,t2.id,t3.id FROM t1,t2 LEFT JOIN t3 ON (t3.id=t1.id) WHERE t1.id=t2.id; --实际上这么执行 SELECT t1.id,t2.id,t3.id FROM t1,( t2 LEFT JOIN t3 ON (t3.id=t1.id) ) WHERE t1.id=t2.id; --应该这么写 SELECT t1.id,t2.id,t3.id FROM (t1,t2) LEFT JOIN t3 ON (t3.id=t1.id) WHERE t1.id=t2.id;
Vergessen Sie nicht, bei der Abfrage noch ein paar Klammern zu schreiben , dadurch können zumindest viele Fehler vermieden werden
Das obige ist der detaillierte Inhalt vonEine detaillierte Einführung in die Join-Operation in MySQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!