SQL-Abfrage-Problem [erledigt]

Fragen zu allen anderen Programmiersprachen.
Benutzeravatar
alter Mann
Beiträge: 201
Registriert: 29.08.2008 09:13
Wohnort: hinterm Mond

SQL-Abfrage-Problem [erledigt]

Beitrag von alter Mann »

Ich habe 3 Tabellen und folgende Abfrage :

Code: Alles auswählen

SELECT table1.name, table2.name, table3.name FROM table1, table2, table3 WHERE table2.id = table1.id2 AND table3.id1 = table1.id
nun fehlt in table3 evtl. der Verweis auf table1 und damit ergibt die Abfrage einen Fehler. Kann ich trotzdem das ganze in einer Abfrage abhandeln und für die fehlenden Einträge in table3 für table3.name irgendwelche Standardwerte ausgeben ?
Zuletzt geändert von alter Mann am 08.04.2014 13:27, insgesamt 1-mal geändert.
Win11 64Bit / PB 6.0
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: SQL-Abfrage-Problem

Beitrag von NicTheQuick »

Ich müsste mich jetzt selbst noch mal genauer einlesen. Vor ein paar Jahren konnte ich es noch. :D Aber ich denke hier findest du den richtigen Weg und lernst dabei noch was: Einführung in SQL: Arbeiten mit JOIN
Benutzeravatar
alter Mann
Beiträge: 201
Registriert: 29.08.2008 09:13
Wohnort: hinterm Mond

Re: SQL-Abfrage-Problem

Beitrag von alter Mann »

Danke für den Link. Ich schaue es mir mal an. Vielleich finde ich ja eine Lösung für mein Problem :) .
Win11 64Bit / PB 6.0
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Re: SQL-Abfrage-Problem

Beitrag von bobobo »

hjab nur "fehlende Werte" gelesen und da fiel mir sofort folgendes zu ein.
es gibt, je nach Datenbank Möglichkeiten NullWerte in tatsächlche Werte umzubiegen (hierbei den Datentypen beachten)

in MsSql ist das IsNulll

bei MYSQl Ifnull (dort gibts auch NullIf, also die Umwandlung von Werten nach NULL)

bei sqlite ifnull und/oder coalesce .. eventuell hilft hier auch CASE ...

Für PostgreS und andere gibt es sicher ähnliches

Ansonsten kennt SQL durchaus auch bedingungen mit if
---

um welches DB-System geht es denn?
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Benutzeravatar
alter Mann
Beiträge: 201
Registriert: 29.08.2008 09:13
Wohnort: hinterm Mond

Re: SQL-Abfrage-Problem

Beitrag von alter Mann »

...hab ich vergessen zu erwähnen: das ist 'ne ODBC-Datenbank.
Win11 64Bit / PB 6.0
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Re: SQL-Abfrage-Problem

Beitrag von bobobo »

ok .. ODBC ist "nur" eine Schnittstelle, das Datenbanksystem dahinter wäre interessant.

Falls du es nicht anders weisst. das kann man auslesen im ODBC-Manager .. dort der benutzte Odbc-Treiber.
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Benutzeravatar
alter Mann
Beiträge: 201
Registriert: 29.08.2008 09:13
Wohnort: hinterm Mond

Re: SQL-Abfrage-Problem

Beitrag von alter Mann »

... musste erst mal selber nachschauen :oops: - ist eine MS-Access Datenbank
Win11 64Bit / PB 6.0
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Re: SQL-Abfrage-Problem

Beitrag von bobobo »

Wenn Du Access hast, dann kannst DU auch dort SQL "üben".

Das JOIN Zeugs geht da auch.

Infos gibt's bei Google
oder hier
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Benutzeravatar
shadow
Beiträge: 189
Registriert: 23.03.2005 17:52
Wohnort: Lübeck

Re: SQL-Abfrage-Problem

Beitrag von shadow »

Meinst du sowas hier?

Code: Alles auswählen

SELECT t1.name, t2.name, IsNull(t3.name, "<n/a>") AS name
FROM table1 t1 
JOIN table2 t2 ON t2.id = t1.id2
LEFT JOIN table3 t3 ON t3.id1 = t1.id
Der LEFT JOIN verbeindet die Tabelle table3 nur wenn eine Referenzierung über id1 möglich ist, sonst sind alle selektierten Werte bon table3 NULL. IsNull gibt dir <n/a> zurück, wenn die Spalte Name der table3 NULL ist (unter Informix-SQL ist das NVL).
ThinkPad T61 (in Gedenken) | PureBasic 4.61 B1 (32) | Windows 7 (32SP1) | ArchLinux (32) | Syllable (32)
Benutzeravatar
alter Mann
Beiträge: 201
Registriert: 29.08.2008 09:13
Wohnort: hinterm Mond

Re: SQL-Abfrage-Problem

Beitrag von alter Mann »

@shadow : das IsNull() habe ich gesucht ! Danke :allright: .

Dank auch an bobobo und nick für die Links. Die werde ich mich mal zu Gemüte führen.
Win11 64Bit / PB 6.0
Antworten