SQL Select aus mehreren Tabellen
Übersicht![](/themes/Standard/arrow.png)
![](/themes/Standard/arrow.png)
![]() |
Jan_Ehemaliger AdminBetreff: SQL Select aus mehreren Tabellen |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo,
irgendwie fühle ich mich gerade sehr dämmlich. Ich will ein * - Select auf mehrere Tabellen machen, ohne Verknüpfung der Tabellen untereinander. select * from personc_0_1997_0_dict join personb_0_1997_dict join persona_0_dict join person_dict join adresse_dict oder select * from personc_0_1997_0_dict ,personb_0_1997_dict, persona_0_dict, person_dict, adresse_dict bringt bei mir Mysql immer NULL Ergebnissmenge... Jedoch ist in den Tabellen was drinne. Muss ich etwa für alle Tabellen ein einzelnes Select schreiben? Ich plante eigentlich die Ergebnisse mit Where noch einzuschränken und dann gleich weiter zu verarbeiten im PHP. Was mache ich da falsch? |
||
between angels and insects |
![]() |
Eingeproggt |
![]() Antworten mit Zitat ![]() |
---|---|---|
Interessant, dass diese Abfragen überhaupt ausgeführt werden. Wenn ich der Interpreter wäre, ich wüßte nicht was ich mit den Tabellen tun soll ![]() Ich nehme an, mit "ohne Verknüpfung" meinst du, dass "JOIN ... ON" nichts hilft? (Das wäre zu bevorzugen) Dann würde ich "LEFT JOIN" (bzw. RIGHT JOIN) empfehlen. Wobei da seeeehr viele Daten rauskommen, das muss man irgendwie einschränken. Da deine Beispieltabellen sehr ähnlich klingen, ist vielleicht auch "UNION" etwas für dich? LG, Christoph |
||
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9 |
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Kannste schon machen, aber das führt zu jeder möglichen Kombination (mySQL):
table_a Code: [AUSKLAPPEN] key value
1 one 2 two table_b Code: [AUSKLAPPEN] key value
1 1 2 2 Code: [AUSKLAPPEN] SELECT * FROM table_a, table_b
Code: [AUSKLAPPEN] key value key value
1 one 1 1 2 two 1 1 1 one 2 2 2 two 2 2 Vielleicht ist das Ergebnis zu groß oder rechnet lange? |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
Jan_Ehemaliger Admin |
![]() Antworten mit Zitat ![]() |
---|---|---|
Halli Hallo,
jap das mit dem Kreuzprodukt habe ich heraus gefunden. Was ich aber möchte: Tab1: a1 Tab2: b1,b2 Code: [AUSKLAPPEN] a1 null null null b1 b2 gibt es dafür einen Befehl/bzw. ein Join? (Laut Uniion all, muss es die selben Collums haben) EDIT: SELECT CustomerName as Name FROM Customers UNION ALL SELECT SupplierName as Name FROM Suppliers ORDER BY Name; Damit könnte ich Felder verbinden. Das könnte mir recihen, falls niemand eine bessere Idee hat. |
||
between angels and insects |
![]() |
count-doku |
![]() Antworten mit Zitat ![]() |
---|---|---|
Kannst du sonst nicht beim FROM mehrere Tabellen angeben?
Code: [AUSKLAPPEN] SELECT * FROM Customers, Categories;
|
||
![]() |
Eingeproggt |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das macht er ja...
@Jan_: Stöbere durch die verschiedenen JOIN-Varianten (LEFT, RIGHT,...). Soweit ich dich verstanden habe, ist das was du bis jetzt hast wirklich das beste. Es wird auch hier für genau dieses Szenario empfohlen: http://www.peterkropff.de/site...r_join.htm |
||
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9 |
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Warum möchtest du denn zwei Tabellen, die eigentliche keine Verbindung haben, in einer Abfrage haben?
Klingt eher nach einem Problem, dass sich in PHP mit mehreren Abfragen einfacher lösen lässt. |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
Jan_Ehemaliger Admin |
![]() Antworten mit Zitat ![]() |
---|---|---|
@ Xeres, aber der SQL server soll optimal ausgelastet werden ![]() sieht nun gut aus: Code: [AUSKLAPPEN] select firma_0_dict_field as feld, firma_0_dict_description as description, firma_0_dict_hintdescription as hint, firma_0_dict_standardcontent as standard, firma_0_dict_cast as cast, firma_0_dict_analyzeable as anal, firma_0_dict_histable as hist, firma_0_dict_mandatoryfield as muss, firma_0_dict_visible as visible from firma_0_dict
union all select kunde_dict_field as feld, kunde_dict_description as description, kunde_dict_hintdescription as hint, kunde_dict_standardcontent as standard, kunde_dict_cast as cast, kunde_dict_analyzeable as anal, kunde_dict_histable as hist, kunde_dict_mandatoryfield as muss, kunde_dict_visible as visible from kunde_dict union all select person_dict_field as feld, person_dict_description as description, person_dict_hintdescription as hint, person_dict_standardcontent as standard, person_dict_cast as cast, person_dict_analyzeable as anal, person_dict_histable as hist, person_dict_mandatoryfield as muss, person_dict_visible as visible from person_dict union all select adresse_dict_field as feld, adresse_dict_description as description, adresse_dict_hintdescription as hint, adresse_dict_standardcontent as standard, adresse_dict_cast as cast, adresse_dict_analyzeable as anal, adresse_dict_histable as hist, adresse_dict_mandatoryfield as muss, adresse_dict_visible as visible from adresse_dict union all select abteilung_0_1997_dict_field as feld, abteilung_0_1997_dict_description as description, abteilung_0_1997_dict_hintdescription as hint, abteilung_0_1997_dict_standardcontent as standard, abteilung_0_1997_dict_cast as cast, abteilung_0_1997_dict_analyzeable as anal, abteilung_0_1997_dict_histable as hist, abteilung_0_1997_dict_mandatoryfield as muss, abteilung_0_1997_dict_visible as visible from abteilung_0_1997_dict |
||
between angels and insects |
Übersicht
![](/themes/Standard/arrow.png)
![](/themes/Standard/arrow.png)
Powered by phpBB © 2001 - 2006, phpBB Group