Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Bedingter INNER JOIN in SELECT möglch? (https://www.delphipraxis.net/108374-bedingter-inner-join-select-moeglch.html)

Christian Seehase 12. Feb 2008 16:40

Datenbank: MS SQL • Version: 2000 • Zugriff über: Query Analyzer

Bedingter INNER JOIN in SELECT möglch?
 
Hallo Zusammen,

in einer Tabelle habe ich eine Spalte, die eine Mitarbeiter-ID enthält. Diese korrespondiert aber nur teilweise mit der zugehörigen Stammdatentabelle, da hier auch die allgemeine Kennung für einen externen Mitarbeiter enthalten sein kann. Diese Dummy-ID gibt es aber in der Stammdatentabelle nicht, so dass ich für solche Zeilen bei einem INNER JOIN aus der Stammdatentabelle keine Daten zurückerhalte (logisch ;-)). Der Datensatz mit der Dummy-ID enthält dann aber den Klartextnamen, so dass ich in dem Falle nicht auf die Daten aus der Stammdatentabelle angwiesen bin.
Gibt es eine Möglichkeit den INNER JOIN auf die Stammdatentabelle nur unter der Bedingung auszuführen, dass ich eine gültige ID übergebe?

NormanNG 12. Feb 2008 16:48

Re: Bedingter INNER JOIN in SELECT möglch?
 
Hi,

ich glaube, was du suchtst ist der LEFT JOIN (Alles aus der linken Tabelle und das was passt aus der rechten...).

SQL-Code:
select Name1, isnull(stamm1.name, name1) from tabelle1
left join stamm1 on stamm1.id=tabelle1.id
...oder so

alzaimar 12. Feb 2008 17:55

Re: Bedingter INNER JOIN in SELECT möglch?
 
Zitat:

Zitat von NormanNG
SQL-Code:
select Name1, isnull(stamm1.name, name1) from tabelle1
left join stamm1 on stamm1.id=tabelle1.id
...oder so

Nämlich so (is' halt T-SQL von MS)
SQL-Code:
select Name1,
       coalesce(stamm1.name, name1)
  from tabelle1
       left join stamm1 
         on stamm1.id=tabelle1.id

Dax 12. Feb 2008 17:57

Re: Bedingter INNER JOIN in SELECT möglch?
 
Ist COALESCE nicht ausnahmsweise mal ein Teil des Standards?

Christian Seehase 12. Feb 2008 18:14

Re: Bedingter INNER JOIN in SELECT möglch?
 
Hallo Zusammen,

prima, danke. :thumb:
Da hab' ich jetzt schon mal einen Anhaltspunkt wie ich weiter vorgehen kann.
(jetzt muss ich's nur noch hinbekommen ;-))

alzaimar 12. Feb 2008 18:26

Re: Bedingter INNER JOIN in SELECT möglch?
 
Zitat:

Zitat von Dax
Ist COALESCE nicht ausnahmsweise mal ein Teil des Standards?

Selbst wenn, würde MS es sich zu Eigen gemacht haben... :stupid:

Christian Seehase 13. Feb 2008 21:25

Re: Bedingter INNER JOIN in SELECT möglch?
 
Moin Zusammen,

noch mal meinen herzlichsten Dank.
Nachdem ich mich noch mal mit den angsprochenen Anhaltspunkten beschäftigt hatte, habe ich meine Abfrage hinbekommen wie geplant.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:24 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