Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Mysql - Multitabelle löschen

Ich habe ein Testbeispiel wie folgt erstellt:

use test
DROP TABLE IF EXISTS a;
DROP TABLE IF EXISTS b;
CREATE TABLE a (id INT NOT NULL PRIMARY KEY);
CREATE TABLE b (id INT NOT NULL PRIMÄRSCHLÜSSEL);
INSERT IN a VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10 );
INSERT INTO b VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10);
SELECT * FROM a;
SELECT * FROM b;
DELETE a.* FROM a INNER JOIN b ON a.id =b.id WHERE a.id IN (1,2,3 ,4);
SELECT * FROM a;

Hier sind meine Ergebnisse:

[email protected] (DB-Test) ::Test verwenden
Datenbank geändert
example@sqldat .com (DB-Test) ::DROP TABLE IF EXISTS a;
Abfrage OK, 0 Zeilen betroffen (0,06 Sek.)

[email protected] (DB-Test) ::DROP TABLE IF EXISTS b;
Abfrage OK, 0 Zeilen betroffen (0,06 Sek.)

[email protected] (DB-Test) ::CREATE TABLE a (id INT NOT NULL PRIMARY KEY);
Abfrage OK, 0 Zeilen betroffen (0,23 Sek.)

[email protected] (DB-Test) ::CREATE TABLE b (id INT NOT NULL PRIMARY KEY);
Abfrage OK, 0 Zeilen betroffen (0,17 Sek.)

[email protected] (DB-Test) ::EINFÜGEN IN WERTE (1), (2), (3), (4), (5), (6), (7), (8), (9), (10);
Abfrage OK, 10 Zeilen betroffen (0,06 Sek.)
Datensätze:10 Duplikate:0 Warnungen:0

[email protected] (DB-Test) ::INSERT INTO b VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10);
Abfrage OK, 10 Zeilen betroffen (0,06 Sek.)
Datensätze:10 Duplikate:0 Warnungen:0

[email protected] (DB-Test) ::SELECT * FROM a;
+----+
| ID |
+----+
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 6 |
| 7 |
| 8 |
| 9 |
| 10 |
+----+
10 Zeilen im Satz (0,00 Sek.)

[email protected] (DB-Test) ::SELECT * FROM b;
+----+
| ID |
+----+
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 6 |
| 7 |
| 8 |
| 9 |
| 10 |
+----+
10 Zeilen im Satz (0,00 Sek.)

[email protected] (DB-Test) ::DELETE a,b FROM a INNER JOIN b ON a.id =b.id WHERE a.id IN(1,2,3,4);Abfrage OK, 4 Zeilen betroffen (0,08 Sek.)

[email protected] (DB-Test) ::SELECT * FROM a;
+----+
| ID |
+----+
| 5 |
| 6 |
| 7 |
| 8 |
| 9 |
| 10 |
+----+
6 Zeilen im Satz (0,00 Sek.)

[email protected] (DB-Test) ::SELECT * FROM b;
+----+
| ID |
+----+
| 5 |
| 6 |
| 7 |
| 8 |
| 9 |
| 10 |
+----+
6 Zeilen im Satz (0,00 Sek.)

Probieren Sie es aus !!!

Übrigens habe ich "AS a" und "AS b" aus Ihrer Abfrage entfernt und a.b_id in a.id geändert