Ich habe drei Databases, , tableB
und tableAB
. Der Inhalt ist nicht wirklich wichtig, nur dass und tableB
Primärschlüssel haben und tableAB
die Schlüssel in den beiden Tabellen bezieht. Die Grundstruktur ist unter:
Wählen Sie Von Einfügen In
aId|data
---+----
1 |4
2 |83
bId|data
---+----
1 |a
2 |cd
3 |bf
abId|aId|bId
----+---+---
1 |1 |1
2 |1 |2
3 |2 |3
Was Ich mag würde zu tun ist, um die Einsätze von allen drei dieser Tabellen in einer Abfrage zu kombinieren, aber ich bin nicht sicher, wie. Die aktuelle Idee, mit der ich arbeite, ist unten, aber es funktioniert nicht. Wichtige Dinge zu beachten sind aId
's können sich auf mehrere bId
' s beziehen, aber jede bId
wird nur eine aId
beziehen sich darauf. Daher darf sich aId
nicht auf bestehende bId
beziehen. Die großen Dinge, mit denen ich kämpfe sind 1) den Wert eines insert
kommen von einem anderen insert
, und 2) simulieren mehrere Einsätze, für bId
's, in einer einzigen Abfrage.
Aktuelle Abfrage:
insert into tableAB(aId, bId)
values((select aId from(insert into tableA(data) values(5))),
(select bId from(insert into tableB(data) values("f"))));
Ich bin wirklich nicht sicher, mehrere Einsätze in einer einzigen Abfrage möglich ist, und weiß nicht, einen Weg, es oben zu schreiben.
Multi-Tabellen-Einsätze in einer einzigen Abfrage werden von MySQL nicht unterstützt. :( – Sevle
Sie könnten tun, was Sie in Postgres wollen, aber MySQL unterstützt nicht Inserts in mehrere Tabellen in einer einzigen Abfrage. –
Es gibt eine LAST_INSERT_ID, siehe [Handbuch] (http://dev.mysql.com/doc/ refman/5.7/de/information-functions.html # function_last-insert-id), Beispiel: http://www.sqlfiddle.com/#!9/a8102/1/0 –