AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Komplexe Abfrage

Ein Thema von Ghostwalker · begonnen am 18. Jun 2020 · letzter Beitrag vom 23. Jun 2020
Antwort Antwort
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#1

AW: Komplexe Abfrage

  Alt 19. Jun 2020, 10:31
"..ich versteh den Sinn nicht.."


Gute Augen!

der Join "countries c, languages l.." ist schon sehr ungewöhnlich, Tendenz "sehr fragwürdig".
Aber woher kommt ".._lang=25" als Alternative?

Die Kernsprachtabelle mit Codierung zur Einschränkung reinzujoinen ist doch total okay.
Der 2. Vorschlag scheint mir auch nicht okay, da dort zwar 'inner join' steht, aber die Join Kriterien zwischen Country und Language unklar bleiben.

Es ist kein Fehler, die Einschränkung auf code "en" im WHERE zu machen (also nicht auf einem technischen Schlüssel), dafür ist es ja da, das WHERE. Das eine sind halt JOIN Kriterien, das andere eben Filter (WHERE).
(Wir wissen, dass die Trennung manchmal unscharf ist und es sich mischen kann und ein JOIN meist auch als Filter wirkt).

Es geht halt einerseits um korrekte Verknüpfung der Tabellen und andererseits um beliebige, benötigte Filterung des Join Ergebnis, also um eine Eingrenzung des Ergebnis.
Gruß, Jo
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.740 Beiträge
 
Delphi 6 Enterprise
 
#2

AW: Komplexe Abfrage

  Alt 19. Jun 2020, 11:49
Aber woher kommt ".._lang=25" als Alternative?
Die 25 hab ich mir nur ausgedacht. Ich meinte damit das, wenn es immer englisch ist, es Käse ist die language Tabelle dazu zu joinen nur um die language-id zu bekommen. In dem Fall guck ich die einmalig nach (25 wäre raumsgekommen) und verwende die halt.

Macht natürlich keinen Sinn, wenn der Ländercode dynamisch in meinem Programm durch einen anderen ersetzt werden könnte, dann muss ich das so machen wie Ghostwalker das macht. Mich störte dann nur die Mischung zw. alter und neuer Join Syntax, darum mein zweites Beispiel.

Die Kernsprachtabelle mit Codierung zur Einschränkung reinzujoinen ist doch total okay.
Der 2. Vorschlag scheint mir auch nicht okay, da dort zwar 'inner join' steht, aber die Join Kriterien zwischen Country und Language unklar bleiben.
Das ist es ja gerade, es gibt keine Join-Bedingung zw. country und language Tabelle. Deswegen wird zu jedem Eintrag in der country Tabelle jeder Eintrag in der language Tabelle hinzuge-joined und erst die where-Bedingung schränkt das nachher wieder ein. Dank der Optimizer in den Datenbanken ist das wahrscheinlich egal, aber in meiner Version wird halt nur der Datensatz mit language=en dazugejoined.
Ralph
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:28 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz