Ich habe 4 verschiedene Tabellen, mit Feld Id. Ich möchte eine fünfte Tabelle mit vier Feldern erstellen; Jedes Feld enthält eine Liste aller IDs aus jeder Tabelle. Die IDs haben nichts miteinander zu tun, deshalb kann ich mir nicht vorstellen, was sie tun sollen. Wenn ich eine Gewerkschaft mache, weiß ich nicht, aus welcher Tabelle ich komme. Kann ich das irgendwie machen?Wie mehrere Felder aus mehreren Tabellen ohne Beziehung zwischen ihnen auszuwählen?
Antwort
Dies ist eine Lösung in VBA, DAO Methoden. Der Kürze halber habe ich nur Tabelle1 und Tabelle3 eingefügt. Ungetestet, aber es sollte funktionieren. :)
Public Sub FillResult()
Dim DB As DAO.Database
Dim rsT As DAO.Recordset ' Target
Dim rs1 As DAO.Recordset, rs3 As DAO.Recordset ' Source tables
Set DB = CurrentDb
' Clean out result table
DB.Execute "DELETE * FROM tResult"
Set rsT = DB.OpenRecordset("tResult", dbOpenDynaset, dbAppendOnly)
Set rs1 = DB.OpenRecordset("SELECT Id FROM table1", dbOpenSnapshot)
Set rs3 = DB.OpenRecordset("SELECT aId FROM table3", dbOpenSnapshot)
' Main loop runs as long as there are records left in at least one source table
Do While Not (rs1.EOF And rs3.EOF)
' Add new record in tResult
rsT.AddNew
' For each source table: if not EOF, copy current value to target table and move to next record
If Not rs1.EOF Then
rsT!table1 = rs1!ID
rs1.MoveNext
End If
If Not rs3.EOF Then
rsT!table3 = rs3!aID
rs3.MoveNext
End If
rsT.Update
Loop
rsT.Close
End Sub
Sie alle diese Tabellen kombinieren können vollständige äußere Verknüpfung mit (für MS Access diff Logik UNION) und verstehen sich inklusive/behandeln die NULL-Werte auf weitere Fragen.
für MS Access
SELECT t1.[id] table1,NULL table2,NULL table3,NULL table4 FROM table1 t1 UNION
SELECT NULL table1,t2.[id] table2,NULL table3,NULL table4 FROM table2 t2 UNION
SELECT NULL table1,NULL table2,t3.[aid] table3,NULL table4 FROM table3 t3 UNION
SELECT NULL table1,NULL table2,NULL table3,t4.[bid] table4 FROM table4 t4
Ergebnis:
table1 table2 table3 table4
11 NULL NULL NULL
32 NULL NULL NULL
NULL 22 NULL NULL
NULL 45 NULL NULL
NULL NULL 1 NULL
NULL NULL 5 NULL
NULL NULL NULL 2
NULL NULL NULL 7
Ich weiß, das ist nicht die genaue Lösung ist, kann aber hilfreich sein.
Für SQL Server können Sie auf diese Weise tun
SELECT t1.[id] table1
,t2.[id] table2
,t3.[aid] table3
,t4.[bid] table4
FROM table1 t1
FULL OUTER JOIN table2 t2 ON t1.id = t2.id
FULL OUTER JOIN table3 t3 ON t1.id = t3.aid
FULL OUTER JOIN table4 t4 ON t1.id = t4.bid
Aber dies wird auch die NULL-Werte erzeugen und müssen diese NULL-Werte auf weitere Fragen ausschließen/handhaben.
Unterstützt MS Access volle äußere Verbindung? IIRC-Nr. – Arvo
können wir eine andere Logik (UNION) verwenden, um den vollständigen äußeren Join in MS Access zu implementieren. Ergebnis geändert. Dies erzeugt jedoch auch die NULL-Werte und muss diese NULL-Werte bei weiteren Abfragen ausschließen. Ich weiß, das ist nicht die genaue Lösung, aber kann hilfreich sein. –
- 1. verbinden mehrere Beziehung Tabellen
- 2. Einzel Abfrage mehrere Werte aus mehreren Tabellen
- 3. Erstellen einer Beziehung zwischen zwei Tabellen ohne Verwendung eines Primärschlüssels
- 4. Beziehung zwischen zwei Tabellen, SQLAlchemy
- 5. Tabellen verbunden ohne gemeinsame Felder
- 6. Müssen die Beziehung zwischen DB-Tabellen ändern
- 7. MySQLi aus mehreren Tabellen
- 8. Verknüpfungen aus mehreren Tabellen zählen
- 9. Python peewee - Wählen Sie aus mehreren Tabellen
- 10. Felder aus verknüpften Tabellen kombinieren
- 11. Löschen aus mehreren Tabellen SQL
- 12. Zeilen aus mehreren Tabellen löschen
- 13. SQL Mehrfachzählungen aus mehreren Tabellen
- 14. Mehrere Tabellen ohne AS (Alias) auswählen?
- 15. aus mehreren Tabellen auswählen, Duplikate entfernen
- 16. Kaskadieren Sie Bild ohne Leerzeichen zwischen ihnen
- 17. So verketten Sie mehrere Zeilen effizient aus mehreren Tabellen
- 18. Auswahl aus mehreren Tabellen mit LEFT JOIN
- 19. Beziehung zwischen zwei Tabellen in SQL Server
- 20. Laravel Beziehung zwischen Benutzer und user_info Tabellen
- 21. Warum wählen Sie aus mehreren Tabellen beitreten, ohne
- 22. SQL SELECT aus mehreren Tabellen
- 23. Wählen Sie aus mehreren Tabellen?
- 24. PHP/MYSQL Join mehrere Tabellen
- 25. , wie aus mehreren Tabellen in sqlite.swift abzufragen
- 26. Löschen aus mehreren Tabellen ASP.NET
- 27. Datensätze aus mehreren Tabellen abrufen
- 28. Wähle Rowid aus mehreren Tabellen
- 29. Join Tabellen mit mehreren Feldern über mehrere Tabellen hinweg
- 30. GreenDAO unterstützen mehrere Beziehungen zwischen Tabellen
Dies ist sehr schwierig in MS Access zu tun. –
Wenn die IDs nichts miteinander zu tun haben, was bringt es, sie in einer Tabelle zusammenzufassen? Was willst du erreichen? Wenn wir das verstehen, können wir Ihnen vielleicht helfen. – massie
Es wäre einfach mit einer VBA-Recordset-Schleife. Aber haben alle 4 Tabellen die gleiche Anzahl an Zeilen? – Andre