| MarkusH |
Geschrieben am: Fr 7.03.2008, 15:03
|
|
AyomRank 4 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Gruppe: Member (aktiv) Beiträge: 79 Mitglied seit: 2.11.2006 |
Hallo,
ich suche eine Mysqlquery: Alle Einträge aus Tabelle A werden angezeigt die passenden Einträge aus Tabelle B beispiel: A ------------- |id|name| |1 |Test1| |2 |Test2| |3 |Test3| ------------- B: ------------- |id|fid|RES| |1 |1|ERG1| |2 |3|ERG2| ------------- fid ist der Fremschlüssel zu Tabelle A Das Ergebnis soll sein: ----------------- |id|name|RES| |1 |Test1|ERG1| |2 |Test2|NULL| |3 |Test3|ERG2| ------------------ Ich habs mit einem einfachen Left Join probiert, das klappt aber leider nicht. Grüeß und danke im Vorraus |
![]() |
| Daniel Cieslar novinet Websolutions |
#2 Geschrieben am: Fr 7.03.2008, 15:47 (+00:43)
|
![]() AyomRank 6 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Gruppe: Member (aktiv) Beiträge: 759 Mitglied seit: 3.10.2005 |
select * from A join B on A.id = B.fid
;-) Gruß, D. -------------------- ...bald verheiratet und mit neuem Namen: ab 06.12.2008 Daniel Steffen
www.calcolo.de - Calcolo 3.0 mit PDF-Rechnungen, Angebote, Mahnungen,... www.webspiration.de - interaktive Werbemittel: Pagepeel, Curtain, Rotator, Carousel novinet Software, Design, Consulting - wir erstellen Ihren maßgeschneiderten Internetauftritt |
![]() |
| jAuer Jürgen Auer - freiberufl. Programmierer |
#3 Geschrieben am: Fr 7.03.2008, 15:47 (+00:00)
|
||
|
AyomRank 9 Gruppe: Experten Entwicklung Beiträge: 2409 Mitglied seit: 4.02.2006 |
Dann poste mal, was Du gemacht hast. Ein 'einfacher LeftJoin' ist eigentlich genau das Richtige dafür. -------------------- Web-Anwendung 3.0: Ein Online-Kalender für Termine vieler Filialen.
server-daten - die Single-Data-Solution: Web-Datenbanken als Online - CRM - Lösung. Ihre Geschäftsprozesse entscheiden, was Ihre Online-Datenbank macht. Sie konzentrieren sich auf Ihr Kerngeschäft - Ihre Datenbank funktioniert. |
||
![]() |
| MarkusH |
#4 Geschrieben am: Fr 7.03.2008, 19:37 (+03:49)
|
|
AyomRank 4 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Gruppe: Member (aktiv) Beiträge: 79 Mitglied seit: 2.11.2006 |
Hi,
wie so oft, saß ich ne halbe Stunde daran und habe es nicht gebacken bekommen. Kaum habe ich die Frage formuliert und gepostet, fiel mir die Lösung ein. Die Crux war eine Where-Clause, die sich auf die "rechte" Tabelle bezog, dadurch konnten natürlich keine entsprechenden Datensätze gefunden werden, da es keinen Datensatz rechts gab, mit dem man links joinen konnte. Ich habe nun einfach den entsprechenden Teil in die ON-Bedingung verlagert (ON a.id=f.id AND RES='ERG3') nun klappts. Danke trotzdem für Eure Hilfe. Grüße markus |
![]() |
| jAuer Jürgen Auer - freiberufl. Programmierer |
#5 Geschrieben am: Fr 7.03.2008, 21:04 (+01:26)
|
||||||||
|
AyomRank 9 Gruppe: Experten Entwicklung Beiträge: 2409 Mitglied seit: 4.02.2006 |
Die Lösung ist korrekt. Aber die Begründung ist an einer (für den Umgang mit Sql entscheidenden) Stelle falsch. Wenn Du
verwendest, dann wird für die Zeilen mit B.RES = Null die Where-Klausel immer auch Null, also falsch. Damit fliegen alle typischen LeftJoin-Ergebnisse, bei denen die linke Tabelle eine Zeile und die rechte Tabelle nichts liefert, raus - faktisch entspricht das einem InnerJoin, bei dem B.RES = 'ERG3' und B.fId mit einer passenden ID belegt sein muß, die Zeile also existieren muß. Nutzt Du stattdessen
dann können für eine Zeile der linken Tabelle beide Bedingungen wegen einem fehlenden rechten Datensatz als Null ausgewertet werden - und die Zeile wird ausgegeben. Man kann das Problem in manchen Fällen auch über eine Unterabfrage lösen:
Da zieht man die Bedingung in die Unterabfrage rein, diese liefert nur die passenden Zeilen zurück - und für alle 'fehlenden Zeilen' liefert die linke Tabelle eine Zeile. -------------------- Web-Anwendung 3.0: Ein Online-Kalender für Termine vieler Filialen.
server-daten - die Single-Data-Solution: Web-Datenbanken als Online - CRM - Lösung. Ihre Geschäftsprozesse entscheiden, was Ihre Online-Datenbank macht. Sie konzentrieren sich auf Ihr Kerngeschäft - Ihre Datenbank funktioniert. |
||||||||
![]() |
Thema wird von 0 Benutzer(n) gelesen (0 Gäste und 0 anonyme Benutzer)
0 Mitglieder:
Trackback-Url: http://www.ayom.com/track/t/23337
![]() |
![]() ![]() ![]() |
| Themen Titel | Autor | Views | Antworten | Letzte Aktion |
| Lost connection to MySQL | cr4m0 | 26 | 0 | Sa 22.11.2008, 10:51 |
| Suche Blogs für Beiträge | panterchen | 54 | 0 | Fr 21.11.2008, 15:45 |
| Suche Linkpartner | am | 160 | 4 | Fr 21.11.2008, 15:29 |
| Suche Korinthenkacker – Kritik gebraucht | G.P. | 177 | 9 | Do 20.11.2008, 16:30 |
| Suche Newsletterwerbung im Bereich Autotuning | slayter | 70 | 1 | Mi 19.11.2008, 11:04 |
| Suche: Exklusiven Text | 100x100 | 81 | 0 | Di 18.11.2008, 19:52 |
| Frage zu Google-Suche | Basti Hoesl | 264 | 6 | Di 18.11.2008, 18:25 |
| MySQL Frage | G.P. | 91 | 2 | Mo 17.11.2008, 15:59 |
| [Suche] Skript freigewordene Domains | woody | 119 | 0 | Fr 14.11.2008, 09:48 |
Anzeige - [Hier werben / Mediadaten]
















