Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
LEFT JOIN A ON A=B !!!AND!!! wie?!
zurück: Export Access Daten zu MySQL weiter: Abfrage Notenliste erstellen, komplexe Beziehungen Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Feedback Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
akdes
VBA-Noob^3, C-Noob^-2, PHP-Noob^0, C#-Noob^0


Verfasst am:
22. Jan 2014, 15:52
Rufname: Alex
Wohnort: Berlin

LEFT JOIN A ON A=B !!!AND!!! wie?! - LEFT JOIN A ON A=B !!!AND!!! wie?!

Nach oben
       Version: Office 2010

Hallo!

Ich habe eine SQL abfrage, mit mehreren LEFT JOINS.
Leider fehlt mir bei einem JOIN eine "AND" verknüpfung:
Code:
SELECT Tbl_Text.TextID, Tbl_LangValues.text_value, Tbl_Language.Shortname, Tbl_Language.Longname
From ((((((((Tbl_Text LEFT JOIN Tbl_LangValues ON Tbl_Text.ID = Tbl_LangValues.ttID)
LEFT JOIN Tbl_Language ON Tbl_LangValues.langID = Tbl_Language.ID)
LEFT JOIN Tbl_Parameter AS P ON Tbl_Text.ID = P.SubNameID OR Tbl_Text.ID = P.IoddID)
LEFT JOIN Tbl_ValueRange AS VR ON VR.ParameterID = P.ID)
LEFT JOIN ValueRange_has_List ON ValueRange_has_List.ValueRangeID = VR.ID)
LEFT JOIN Tbl_List ON ValueRange_has_List.ListID = Tbl_List.ID AND Tbl_List.TextID = Tbl_Text.ID)
HIER

Code:

LEFT JOIN Tbl_Class ON Tbl_Text.ID = Tbl_Class.DeviceFamTextID)
LEFT JOIN Tbl_ArtNr ON Tbl_Text.ID = Tbl_ArtNr.DeviceName OR Tbl_Text.ID = Tbl_ArtNr.DescriptionID)
WHERE P.ClassID = 2 ORDER BY Tbl_Text.ID, Tbl_Language.ID


Es lässt sich leider nicht mit Unterselect's zu erledigen, da ich keine eindeutige Bedingungen habe (wie Tbl_List.ID = 1), alle Bedingungen sind von mehreren Joins abhängig! Wie könnte ich es noch "hinzufügen"?
Code:
Tbl_List.TextID = Tbl_Text.ID



Bei msdn steht, dass es eine "AND ON" Verbindung erlaubt ist, worauf mir Access sagt, dass JOIN nicht unterstüzt wird, oder Syntax Error.

Die "OR" verbindung ist da, funktioniert bestens, aber AND ist nicht erlaubt ;(

Einklammern hilft auch nicht!
Code:
LEFT JOIN Tbl_List ON (ValueRange_has_List.ListID = Tbl_List.ID AND Tbl_List.TextID = Tbl_Text.ID))


Vielen Dank im Voraus!

_________________
Mit freundliche Grüßen,
Alexander
MissPh!
Office-VBA-Programmiererin


Verfasst am:
22. Jan 2014, 19:21
Rufname:
Wohnort: NRW


AW: LEFT JOIN A ON A=B !!!AND!!! wie?! - AW: LEFT JOIN A ON A=B !!!AND!!! wie?!

Nach oben
       Version: Office 2010

Hallo,
Zitat:
Bei msdn steht, dass es eine "AND ON" Verbindung erlaubt ist,
kannst du bitte die Quelle angeben, damit man das nachlesen kann?
_________________
Gruß MissPh!
Gast150313
passt scho'


Verfasst am:
22. Jan 2014, 20:31
Rufname:
Wohnort: Kurpfalz

AW: LEFT JOIN A ON A=B !!!AND!!! wie?! - AW: LEFT JOIN A ON A=B !!!AND!!! wie?!

Nach oben
       Version: Office 2010

Ich glaube, das Problem ist eher, daß deine on-Klausel 3 beteiligte Tabellen beinhaltet: ValueRange_has_List, Tbl_List und Tbl_Text. Das geht natürlich nicht, das sind dann zwei Joins. Ansonsten geht ein Join mit And natürlich:
Code:
SELECT Tabelle1.Feld1T1Text, Tabelle2.Wertfeld1
FROM Tabelle1 LEFT JOIN Tabelle2 ON Tabelle1.Tab2Kfld2_FS=Tabelle2.Kfld2 AND Tabelle1.Tab2Kfld1_FS=Tabelle2.Kfld1;

_________________
Besten Gruß

A. Friend
akdes
VBA-Noob^3, C-Noob^-2, PHP-Noob^0, C#-Noob^0


Verfasst am:
22. Jan 2014, 20:50
Rufname: Alex
Wohnort: Berlin

Re: AW: LEFT JOIN A ON A=B !!!AND!!! wie?! - Re: AW: LEFT JOIN A ON A=B !!!AND!!! wie?!

Nach oben
       Version: Office 2010

Ok, hab jetzt gesehen, dass es nicht msdn ist... aber ist trotzdem MS
MissPh! - 22. Jan 2014, 18:21 hat folgendes geschrieben:
Hallo,
Zitat:
Bei msdn steht, dass es eine "AND ON" Verbindung erlaubt ist,
kannst du bitte die Quelle angeben, damit man das nachlesen kann?


http://office.microsoft.com/de-de/access-help/inner-join-vorgang-HA001231487.aspx
Zitat:
Sie können auch mehrere ON-Klauseln in einer JOIN-Anweisung folgendermaßen miteinander verknüpfen:

SELECT Felder
FROM Tabelle1 INNER JOIN Tabelle2
ON Tabelle1.Feld1 Vergleichsoperator Tabelle2.Feld1 AND
ON Tabelle1.Feld2 Vergleichsoperator Tabelle2.Feld2) OR
ON Tabelle1.Feld3 Vergleichsoperator Tabelle2.Feld3)];


auf der Seite von LEFT JOINs steht, dass
Zitat:
Mehrere ON-Klauseln können miteinander verknüpft werden. Weitere Informationen zum Verknüpfen von Klauseln finden Sie unter dem Hilfethema zu INNER JOIN.
http://office.microsoft.com/de-de/access-help/left-join-und-right-join-vorgang-HA001231489.aspx
_________________
Mit freundliche Grüßen,
Alexander
akdes
VBA-Noob^3, C-Noob^-2, PHP-Noob^0, C#-Noob^0


Verfasst am:
22. Jan 2014, 20:52
Rufname: Alex
Wohnort: Berlin


Re: AW: LEFT JOIN A ON A=B !!!AND!!! wie?! - Re: AW: LEFT JOIN A ON A=B !!!AND!!! wie?!

Nach oben
       Version: Office 2010

Gast150313 - 22. Jan 2014, 19:31 hat folgendes geschrieben:
Das geht natürlich nicht, das sind dann zwei Joins.

Danke, könntest du mir zeigen, wie ich es mit zwei JOINs regele?

Danke im Voraus!

_________________
Mit freundliche Grüßen,
Alexander
Gast150313
passt scho'


Verfasst am:
22. Jan 2014, 22:49
Rufname:
Wohnort: Kurpfalz

AW: LEFT JOIN A ON A=B !!!AND!!! wie?! - AW: LEFT JOIN A ON A=B !!!AND!!! wie?!

Nach oben
       Version: Office 2010

Das Problem ist, daß du diese riesige Abfrage angibst, so daß ich, um das nachzustellen, eine Menge Arbeit hätte. Kannst du nicht eine abgespeckte Version deiner DB hochladen?
_________________
Besten Gruß

A. Friend
akdes
VBA-Noob^3, C-Noob^-2, PHP-Noob^0, C#-Noob^0


Verfasst am:
22. Jan 2014, 23:41
Rufname: Alex
Wohnort: Berlin

Re: AW: LEFT JOIN A ON A=B !!!AND!!! wie?! - Re: AW: LEFT JOIN A ON A=B !!!AND!!! wie?!

Nach oben
       Version: Office 2010

Gast150313 - 22. Jan 2014, 21:49 hat folgendes geschrieben:
Das Problem ist, daß du diese riesige Abfrage angibst, so daß ich, um das nachzustellen, eine Menge Arbeit hätte. Kannst du nicht eine abgespeckte Version deiner DB hochladen?

Das ist viel zu viel arbeit... hab anders gemacht.. habe in Tbl_text ein neues Feld "ClassID" erstellt und jetzt einfach select ... from Tbl_text where Tbl_Text.ClassID = x

_________________
Mit freundliche Grüßen,
Alexander
MissPh!
Office-VBA-Programmiererin


Verfasst am:
23. Jan 2014, 00:01
Rufname:
Wohnort: NRW

AW: LEFT JOIN A ON A=B !!!AND!!! wie?! - AW: LEFT JOIN A ON A=B !!!AND!!! wie?!

Nach oben
       Version: Office 2010

Hallo,

das ist allerdings eine ziemlich "überraschende" Lösung...

Der Artikel auf den du verweist enthält übrigens zahlreiche Fehler, u.a. funktioniert die Sache mit "AND ON" bzw. "OR ON" zumindest in Access so überhaupt nicht.
(Das halte ich übrigens für eine untragbare Schlamperei!)
Zitat:
Das Problem ist, daß du diese riesige Abfrage angibst, so daß ich, um das nachzustellen, eine Menge Arbeit hätte.
Nun, es sollte wohl genügen, die Abfrage auf die wesentlichen Bestandteile zu reduzieren. Es müssen ja nicht so viele Tabellen beteiligt sein, um das Problem nachzustellen.

Mein Vorschlag wäre gewesen:
So wie ich deinen Code verstehe, sollte es möglich sein, die nicht umsetzbare Verknüpfung:
Code:
LEFT JOIN Tbl_List ON ValueRange_has_List.ListID = Tbl_List.ID AND Tbl_List.TextID = Tbl_Text.ID
durch entsprechende Kriterien zu ersetzen oder die betroffene Tabelle zweimal zu verknüpfen.
Um das zu entscheiden, müsste man aber wohl den Sinn der Abfrage erstmal verstehen. Wink

Aber du hast ja wohl inzwischen eine andere Lösung gefunden.

_________________
Gruß MissPh!
Gast150313
passt scho'


Verfasst am:
23. Jan 2014, 02:40
Rufname:
Wohnort: Kurpfalz

Re: AW: LEFT JOIN A ON A=B !!!AND!!! wie?! - Re: AW: LEFT JOIN A ON A=B !!!AND!!! wie?!

Nach oben
       Version: Office 2010

MissPh! - 22. Jan 2014, 23:01 hat folgendes geschrieben:
... Mein Vorschlag wäre gewesen:
So wie ich deinen Code verstehe, sollte es möglich sein, die nicht umsetzbare Verknüpfung:
Code:
LEFT JOIN Tbl_List ON ValueRange_has_List.ListID = Tbl_List.ID AND Tbl_List.TextID = Tbl_Text.ID
durch entsprechende Kriterien zu ersetzen oder die betroffene Tabelle zweimal zu verknüpfen.
Um das zu entscheiden, müsste man aber wohl den Sinn der Abfrage erstmal verstehen. ... Aber du hast ja wohl inzwischen eine andere Lösung gefunden.
Ich vermute auch, daß das, was da wie ein Teil des ON-Clauses daherkam, eigentlich eine WHERE-Bedingung ist.

@Akdes:
Ohne die nahetreten zu wollen, ohne die entmutigen zu wollen und ohne übermäßige persönliche Kritik an deiner Arbeit. Ich beobachte deine Aktivitäten mit DBs nun schon länger - keines deiner Vorhaben war ohne große Rätsel, keines war nicht an irgendeiner Stelle fragwürdig. Ich weiß nicht, für wen du entwickelst, aber m.E. hast du dich da irgendwo in einen Zwang begeben, der das verhindert, was du dringend tun solltest: Abstand gewinnen zur praktischen Anwendung und dich nochmal gründlich und systematisch mit den Grundlagen und dem Aufbau relationaler Datenbanken und ihrer Verwendung als Basis für Anwendungen im Betrieb usw. zu beschäftigen.

_________________
Besten Gruß

A. Friend
Gast



Verfasst am:
23. Jan 2014, 03:26
Rufname:


AW: LEFT JOIN A ON A=B !!!AND!!! wie?! - AW: LEFT JOIN A ON A=B !!!AND!!! wie?!

Nach oben
       Version: Office 2010

Zitat:
... hab anders gemacht..
Das ist doch ein toller Weg, um bestimmte Probleme nicht mehr zu haben.

So etwas als unmittelbarer Lösungsvorschlag löst bestimmt Jubelstürme aus.
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Tabellen & Abfragen: SQL Abfrage Join 1 neuling75 1087 28. Mai 2008, 14:46
MAPWARE SQL Abfrage Join
Keine neuen Beiträge Access Tabellen & Abfragen: Parameterübergabe klappt nicht bei Kriterium Between.. And.. 2 Knuffi 701 23. Apr 2008, 17:53
Knuffi Parameterübergabe klappt nicht bei Kriterium Between.. And..
Keine neuen Beiträge Access Tabellen & Abfragen: Aktualisierungsabfragen mit Bedingung und Join 8 Falcon 1909 03. März 2008, 16:57
Falcon Aktualisierungsabfragen mit Bedingung und Join
Keine neuen Beiträge Access Tabellen & Abfragen: Left join auf 2Spalten, ausgabe in einer Spalte 1 nowit 703 19. Feb 2008, 08:30
nowit Left join auf 2Spalten, ausgabe in einer Spalte
Keine neuen Beiträge Access Tabellen & Abfragen: 3 Tabellen mit UNION und INNER JOIN abfragen 2 flysly 3734 14. Dez 2007, 14:24
Willi Wipp 3 Tabellen mit UNION und INNER JOIN abfragen
Keine neuen Beiträge Access Tabellen & Abfragen: Abfrage mit Liste nach z.B. Artikel 1 + 2 oder alle am Ort A 1 demas 579 25. Okt 2007, 09:23
StefanieMV Abfrage mit Liste nach z.B. Artikel 1 + 2 oder alle am Ort A
Keine neuen Beiträge Access Tabellen & Abfragen: 2x left outer join 4 Nju 1096 23. Okt 2007, 14:09
Nju 2x left outer join
Keine neuen Beiträge Access Tabellen & Abfragen: Join über Ähnlichkeit 2 angelus05 579 27. Sep 2007, 08:45
angelus05 Join über Ähnlichkeit
Keine neuen Beiträge Access Tabellen & Abfragen: JOIN oder UNION oder was ganz anderes??? 1 Gast 398 19. Jul 2007, 23:48
Nouba JOIN oder UNION oder was ganz anderes???
Keine neuen Beiträge Access Tabellen & Abfragen: INNER JOIN mit mehreren ON-Abschnitten 2 andreczogalla 683 13. Jun 2007, 13:20
andreczogalla INNER JOIN mit mehreren ON-Abschnitten
Keine neuen Beiträge Access Tabellen & Abfragen: Inner Join über 3 riesige Tabellen (ODBC) 3 elimin8tor 1006 08. Apr 2007, 00:11
Gast Inner Join über 3 riesige Tabellen (ODBC)
Keine neuen Beiträge Access Tabellen & Abfragen: Zwei Tabellenfelder in einem z.B. Abfragefeld anzeigen 2 Mocke47 592 07. März 2007, 18:48
Mocke47 Zwei Tabellenfelder in einem z.B. Abfragefeld anzeigen
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Expression Web Forum