AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi [MySql] Einfache Join Frage
Thema durchsuchen
Ansicht
Themen-Optionen

[MySql] Einfache Join Frage

Ein Thema von 4dk2 · begonnen am 17. Feb 2010 · letzter Beitrag vom 18. Feb 2010
Antwort Antwort
4dk2

Registriert seit: 4. Sep 2007
176 Beiträge
 
#1

[MySql] Einfache Join Frage

  Alt 17. Feb 2010, 07:18
Datenbank: Mysql • Zugriff über: ZeosLib
Hallo zusammen,

ist wahrscheinlich eine "doofe" Frage aber ich als nicht SQL-Experte möchte folgendes machen:

Tabelle1 und Tabelle2 haben beide ein ID Feld

Tabelle 1 Daten:
1
2
4
Tabelle 2 Daten:
1
2
3

Folgendes Ergebnis möchte ich per Join erreichen:
1 1
2 2
3 Null
Null 4

Mit left join oder right join sinds halt immer nur 1,2,3 oder 1,2,4 ...

Danke für eure Antworten
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#2

Re: [MySql] Einfache Join Frage

  Alt 17. Feb 2010, 07:20
Hi!

Ich glaube, dafür bräuchtest du einen Full Outer Join - und ich glaube mich zu erinnern, dass MySQL den nicht unterstützt oder zumindest nicht mit allen Tabellenformen unterstützt. Aber such mal bei Google, da solltest du etwas dazu finden.


Grüße, Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: [MySql] Einfache Join Frage

  Alt 17. Feb 2010, 07:21
Halo,

kennt mysql einen full outer join ?

zu spät ;(


Heiko
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: [MySql] Einfache Join Frage

  Alt 17. Feb 2010, 08:28
So bekommst du das auch mit MySQL hin:

SQL-Code:
SELECT a.id, b.id FROM test a
   LEFT OUTER JOIN test2 b
       ON a.id = b.id
UNION
SELECT a.id, b.id FROM test a
   RIGHT OUTER JOIN test2 b
       ON a.id = b.id
Nur sortiert ist es dann noch nicht.
  Mit Zitat antworten Zitat
Jürgen Thomas

Registriert seit: 13. Jul 2006
Ort: Berlin
750 Beiträge
 
#5

Re: [MySql] Einfache Join Frage

  Alt 17. Feb 2010, 09:01
Zitat von Matze:
Nur sortiert ist es dann noch nicht.
Aber das UNION-Ergebnis kann mit DISTINCT und ORDER bY versehen werden, siehe MySql-Referenz: UNION.

Gruß Jürgen
#D mit C# für NET, dazu Firebird
früher: Delphi 5 Pro, Delphi 2005 Pro mit C# (also NET 1.1)
Bitte nicht sauer sein, wenn ich mich bei Delphi-Schreibweisen verhaue; ich bin inzwischen an C# gewöhnt.
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: [MySql] Einfache Join Frage

  Alt 17. Feb 2010, 09:02
Hallo,

#4
ich glaube nicht,
hier wird doch für

Tab1.a / Tab2.a

Ein doppelter Eintrag erzeugt ?

Distinct ist also zwingend notwendig.


Heiko
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: [MySql] Einfache Join Frage

  Alt 17. Feb 2010, 09:07
IIRC sortiert UNION doppelte Datensätze aus. Wenn man das nicht will, muss man UNION ALL verwenden.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: [MySql] Einfache Join Frage

  Alt 17. Feb 2010, 10:06
Ich bin auch kein MySQL-Guru, aber die Abfrage funktionierte bei mir, wenn ich 2 Tabellen mit den genannten Werten anlege.
Vielleicht gibt es andere, bessere Lösungen.
  Mit Zitat antworten Zitat
4dk2

Registriert seit: 4. Sep 2007
176 Beiträge
 
#9

Re: [MySql] Einfache Join Frage

  Alt 18. Feb 2010, 08:01
Hallo,
Die Antwort von Matze hat mir sehr weitergeholfen.
Vielen Dank
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:43 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz