LINKS der Beitritt zusätzlicher Kriterien in MS-Access
Habe ich das folgende T-SQL-Abfrage (ein einfaches test-Fall) läuft in MS SQL, aber nicht bekommen kann die entsprechende Abfrage in MS Access (JET-SQL). Das problem ist, die zusätzlichen Kriterien, die in der LEFT JOIN. Wie kann ich dies in MS Access?
T-SQL:
SELECT * FROM A
LEFT OUTER JOIN B ON A.ID = B.A_ID
AND B.F_ID = 3
JET-SQL (was ich bisher aber stürzt Zugang!):
SELECT * FROM dbo_A
LEFT JOIN dbo_B ON (dbo_A.ID = dbo_B.A_ID AND dbo_B.F_ID = 3)
- Nicht benötigen, sollten Sie die Klammern auf die join-Kriterien
- Spielt es eine Rolle, dass die T-SQL-Beispiel ist ein outer join? Alle seine im wesentlichen tun, ist die Rückgabe aller Zeilen in A.
- Ponys - Ohne die Klammern, bekomme ich einen syntax-Fehler, mit Ihnen, Access stürzt ab... @Melvin - Nein, das Wort OUTER ist optional.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie mit einer untergeordneten select-Anweisung die Bedingung angewendet werden:
Wenn Sie den Zugriff mit "SQL-92" compatibility-Modus aktiviert ist, können Sie tun mehr standard:
Brauchen Sie diese bearbeitet werden in Access? Wenn nicht, nutzen Sie einfach eine passthrough-Abfrage mit dem nativen T-SQL. Wenn ja, würde ich wahrscheinlich ein server-side-Ansicht für dieses, und ich würde vor allem wollen, um es zu verschieben server-Seite, wenn Sie den literalen Wert ist etwas, was Sie parametrisieren (d.h., die F_ID=3 ist wirklich F_ID=N, wobei N eine ausgewählte Wert zur Laufzeit).
BTW, ich Schreibe diese untergeordneten select-abgeleitete Tabelle, die SQL-Anweisungen an jedem einzelnen Tag während der Arbeit in Access. Es ist nicht so große Sache.
Tun, erhalten Sie eine Fehlermeldung, wenn es abstürzt oder kommt es nur sperren? Die Beurteilung durch die dbo_B name ich werde zu erraten, dass diese verknüpften Tabellen in Access. Ich glaube, dass, wenn Sie eine Verknüpfung wie, dass der Zugang nicht sagen, SQL-server, es muss das Ergebnis der Verknüpfung, wie Sie sagt, "Gib mir alle Zeilen von beiden Tabellen" dann versucht er, sich Ihnen anzuschließen, sich. Wenn die Tabellen sehr groß sind, kann dies bewirken, dass die Anwendung zu sperren.
Sind Sie wahrscheinlich besser dran, erstellen einer Ansicht auf SQL-Server für das, was Sie brauchen.
Dass die Letzte Bedingung technisch nicht eine Verknüpfung, aber einen Vergleich zu einem literalen Wert. Legen Sie es in einer WHERE-Klausel: