leer tabelle mit anzeigen hilfe???
mike
- datenbank
Hallo,
ich habe 3 tabellen , wobei die tabelle 3 schon mal leere
datensätze haben kann.
warum zeigt dann dieser datensatz für alle 3 tabellen keine daten an,
obwohl die ersten beiden datensätze unter z.b id=1 daten
besitzen?
was muss ich ändern?
select * from table_1 as a,table_2 as b,table_3 as c
where a.id = '1' and b.id = '1' and c.id='1'
vielen dank
mfg mike
Hallo,
ich habe 3 tabellen , wobei die tabelle 3 schon mal leere
datensätze haben kann.
warum zeigt dann dieser datensatz für alle 3 tabellen keine daten an,
obwohl die ersten beiden datensätze unter z.b id=1 daten
besitzen?
was muss ich ändern?
select * from table_1 as a,table_2 as b,table_3 as c
where a.id = '1' and b.id = '1' and c.id='1'
vielen dank
mfg mike
Hallo Mike,
weil Du nur Records extrahieren willst, die in Tabelle a UND b UND c eine id='1' besitzen... es gibt aber kein Record auf welchen das zutrifft, wenn zumindest eine Tabelle leer ist oder keinen Eintrag mit id='1' hat.
War beabsichtigt, dass Du alle Felder aus allen Tabellen ausgibst?? Das machst Du nämlich...
Gruß
Gizmo29
mmh ich brauche verschiedene datensätze und weis leider nicht vorher ob die tabelle in diesem datensatz leer ist,und möchte das nicht immer vorher abprüfen, im prinzip sollte jeder ausgewählte datensatz
die daten anzeigen die er besitzt
Hallo,
ich habe 3 tabellen , wobei die tabelle 3 schon mal leere
datensätze haben kann.
warum zeigt dann dieser datensatz für alle 3 tabellen keine daten an,
obwohl die ersten beiden datensätze unter z.b id=1 daten
besitzen?
was muss ich ändern?
select * from table_1 as a,table_2 as b,table_3 as c
where a.id = '1' and b.id = '1' and c.id='1'
vielen dank
mfg mike
Hallo Mike,
weil Du nur Records extrahieren willst, die in Tabelle a UND b UND c eine id='1' besitzen... es gibt aber kein Record auf welchen das zutrifft, wenn zumindest eine Tabelle leer ist oder keinen Eintrag mit id='1' hat.
War beabsichtigt, dass Du alle Felder aus allen Tabellen ausgibst?? Das machst Du nämlich...
Gruß
Gizmo29
Moin!
mmh ich brauche verschiedene datensätze und weis leider nicht vorher ob die tabelle in diesem datensatz leer ist,und möchte das nicht immer vorher abprüfen, im prinzip sollte jeder ausgewählte datensatz
die daten anzeigen die er besitzt
Dann brauchst du einen OUTER JOIN. Bei dem wird eine Tabelle genommen, und aus einer zweiten Tabelle alles zugeordnet, was man zuordnen kann - das kann auch mal nichts sein, die Spalten bleiben dann eben leer.
Lies mal eine MySQL-Anleitung dazu, zum Beispiel:
http://www.little-idiot.de/mysql/mysql-118.html
Da steht eigentlich ziemlich genau drin, was du wissen mußt.
- Sven Rautenberg
viele dank
Moin!
mmh ich brauche verschiedene datensätze und weis leider nicht vorher ob die tabelle in diesem datensatz leer ist,und möchte das nicht immer vorher abprüfen, im prinzip sollte jeder ausgewählte datensatz
die daten anzeigen die er besitzt
Dann brauchst du einen OUTER JOIN. Bei dem wird eine Tabelle genommen, und aus einer zweiten Tabelle alles zugeordnet, was man zuordnen kann - das kann auch mal nichts sein, die Spalten bleiben dann eben leer.
Lies mal eine MySQL-Anleitung dazu, zum Beispiel:
http://www.little-idiot.de/mysql/mysql-118.html
Da steht eigentlich ziemlich genau drin, was du wissen mußt.
- Sven Rautenberg
Hallo,
hi
select * from table_1 as a,table_2 as b,table_3 as c
where a.id = '1' and b.id = '1' and c.id='1'
wenn table_3 leer ist, gibt es auch keine c.id='1', darum ist der join der tabellen leer.
vielen dank
mfg mike
lg aw
Hallo,
ich habe 3 tabellen , wobei die tabelle 3 schon mal leere
datensätze haben kann.
warum zeigt dann dieser datensatz für alle 3 tabellen keine daten an,
obwohl die ersten beiden datensätze unter z.b id=1 daten
besitzen?
was muss ich ändern?
select * from table_1 as a,table_2 as b,table_3 as c
where a.id = '1' and b.id = '1' and c.id='1'
vielen dank
mfg mike
Sorry für den kurzen Mißgriff jetzt, plötzlich war das Formular weg ???
Also:
Als erstes: Tabellen verknüpfen in etwa so:
select * from table_1 as a,table_2 as b,table_3 as c
where a.id_tab2 = b.id and b.id_tab3 = c.id
and a.id = '1' and b.id = '1' and c.id='1'
Wenn Du vorher weißt, daß in table_3 manchmal nichts passendes findest, dann mit einem OUTER JOIN zwischen b und c.
Ansonsten empfehle ich mal Grundlagen von SQL zu lesen.
Falls Du evtl. Detailfragen hast, bräuchte ich eine Info, welche DB Du benutzt.
Gruß Frank
Hi,
ich habe 3 tabellen , wobei die tabelle 3 schon mal leere
datensätze haben kann.
wie wird ein "leerer" Datensatz in diesem Falle dargestellt?
warum zeigt dann dieser datensatz für alle 3 tabellen keine daten an,
obwohl die ersten beiden datensätze unter z.b id=1 daten
besitzen?
Weil so, wie Du das anforderst, nur Zeilen geliefert werden, bei denen
alle drei Tabellen einen Inhalt liefern können.
select * from table_1 as a,table_2 as b,table_3 as c
where a.id = '1' and b.id = '1' and c.id='1'
Wie viele Treffer pro Tabelle erwartest Du ungefähr?
Falls "id" ein Primärschlüssel ist, dann macht Dein Verfahren so Sinn ...
falls nicht, gäbe es bessere Alternativen.
Viele Grüße
Michael
Hi,
ich habe 3 tabellen , wobei die tabelle 3 schon mal leere
datensätze haben kann.
wie wird ein "leerer" Datensatz in diesem Falle dargestellt?
es wir kein datensatz angezeigt,und das ist das problem,
es sollte alles was zu diesem datensatz vorhanden ist
trotzdem angezeigt werden
warum zeigt dann dieser datensatz für alle 3 tabellen keine daten an,
obwohl die ersten beiden datensätze unter z.b id=1 daten
besitzen?
Weil so, wie Du das anforderst, nur Zeilen geliefert werden, bei denen
alle drei Tabellen einen Inhalt liefern können.
select * from table_1 as a,table_2 as b,table_3 as c
where a.id = '1' and b.id = '1' and c.id='1'
Wie viele Treffer pro Tabelle erwartest Du ungefähr?
tausende datensätze mit ca.10 spalten
Falls "id" ein Primärschlüssel ist, dann macht Dein Verfahren so Sinn ...
falls nicht, gäbe es bessere Alternativen.
mfg.mike
Hi Mike,
wie wird ein "leerer" Datensatz in diesem Falle
dargestellt?
es wir kein datensatz angezeigt,und das ist das
problem,
ich wiederhole meine Frage:
Wie stellst _Du_ einen (semantisc) "leeren" Datensatz
innerhalb Deiner _Datenbanktabelle_ dar? (Davon hängt
ab, mit welchem SQL-Statement Du Dein Ziel erreichen
kannst.)
Wie viele Treffer pro Tabelle erwartest Du
ungefähr?
tausende datensätze mit ca.10 spalten
Auch diese Frage scheint bei Dir nicht angekommen
zu sein:
Wie viele Treffer mit exakt der von Dir explizit
angegebenen ID erwartest Du im Schnitt bei Deiner
Abfrage?
Falls das ungefähr ein Treffer ist oder nicht viel
mehr, dann ist Deine Vorgehensweise im Prinzip
sinnvoll; sind es aber wirklich tausende _pro ID_,
solltest Du keinen JOIN verwenden (weil Du dann
Milliarden von Treffern erzielen würdest).
Viele Grüße
Michael