AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Verknüpfung zweier Tabellen verbieten

Verknüpfung zweier Tabellen verbieten

Ein Thema von faux · begonnen am 2. Jan 2007 · letzter Beitrag vom 2. Jan 2007
Antwort Antwort
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#1

Verknüpfung zweier Tabellen verbieten

  Alt 2. Jan 2007, 10:57
Datenbank: MySQL • Version: 5.0 • Zugriff über: PHP
Hallo!

Mit einem INNER JOIN kann man Tabellen zwangsweise verknüpfen und mit einem OUTER JOIN optional verknüpfen. Aber gibt es auch ohne Subquery eine Möglichkeit, dass eine Verknüpfung verboten ist?

Problemstellung:

Ich habe eine Tabelle mit Schulklassen und eine mit Einträgen der Klassen.
Code:
+-----------+     +-------------------+
| classes  |     | entries          |
+----+------+     +----+-------+------+
| ID | Abbr |     | ID | Class | Data |
+----+------+     +----+-------+------+
| 1  | 1A  |     | 1  | 1     | 34.5 |
| 2  | 1B  |     | 2  | 4     | 23.1 |
| 3  | 2A  |     | 3  | 5     |  1.8 |
| 4  | 3A  |     +----+-------+------+
| 5  | 3B  |
| 6  | 3C  |
+----+------+
Ich will ein Query schreiben, das mir alle Klassen liefert, die noch keinen Eintrag haben.
Ich habe schon folgendes Probiert:
SQL-Code:
SELECT Abbr
FROM classes c
LEFT OUTER JOIN entries e ON c.ID = e.Class
/* Liefere alle, die KEINEN entry haben */
WHERE e.ID = NULL
Funktioniert aber leider nicht.
Naja, mit eine, Subquery wär's leicht, will ich aber aus Gründen der Abwärtskompatibilität zu MySQL 4 vermeiden.

Grüße
Faux
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
Touchdown

Registriert seit: 17. Feb 2003
227 Beiträge
 
#2

Re: Verknüpfung zweier Tabellen verbieten

  Alt 2. Jan 2007, 11:44
In diesen Fällen könnte NULL auch falsch sein, probiers mal mit

SQL-Code:
SELECT Abbr
FROM classes c
LEFT OUTER JOIN entries e ON c.ID = e.Class
/* Liefere alle, die KEINEN entry haben */ 
WHERE e.ID = NULL or e.ID = 0
Da sollte dann schon was bei raus kommen.
function getallfornothing: TGoldesel;
begin
result := TGoldesel.create;
end;
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.481 Beiträge
 
Delphi 10.1 Berlin Professional
 
#3

Re: Verknüpfung zweier Tabellen verbieten

  Alt 2. Jan 2007, 12:20
Müsste das "WHERE e.ID = NULL" nicht "WHERE e.iD IS NULL" lauten?
  Mit Zitat antworten Zitat
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Verknüpfung zweier Tabellen verbieten

  Alt 2. Jan 2007, 12:33
Zitat von jbg:
Müsste das "WHERE e.ID = NULL" nicht "WHERE e.iD IS NULL" lauten?
Ja, müsste es.
Jetzt funktioniert es. Danke sehr.
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 06:50 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