Announcement

Collapse
No announcement yet.

SQL Abfrage über mehrere Tabellen optimieren

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • SQL Abfrage über mehrere Tabellen optimieren

    Hallo an Alle,

    ich habe mal eine grundsätzliche Frage. Zur Zeit sehen alle meine SQL Abfragen die über mehere Tabellen gehen ungefähr so aus:

    Code:
    select
    			a.artikel_nr,
                            b.artikel_link,
    			b.artikel_bildlink,
    			c.artikel_name1,
    			c.artikel_name2,
    			c.artikel_name3,
    			c.artikel_preis,
    			c.artikel_gewicht,
    			c.artikel_ean,
    			(select artikel_text from dbo_beschreibung where artikel_nr = a.artikel_nr) as artikel_text
    						
    		from 
    			Artikel_aktiv a,
    			Artikel_Links b,
    			Artikel_Werte c
    					
    		where
    			a.artikel_nr = c.artikel_nr
    		and
    			a.artikel_nr = b.artikel_nr
    		limit 0,100
    Die Unterabfrage muss ich machen da nicht alle Artikel eine Beschreibung haben.

    Frage: Kann man das eleganter lösen oder ist der Ansatz so ok. Es funktioniert geht auch relativ schnell.


    Gruß René

  • #2
    Es gibt keinen Grund einen Subselect zu benutzten. Es ist einfach ein left join.
    Wenn du nach Eleganz fragst würde ich dann empfehlen das als Left join mit aktuellerem Join Syntax zu schreiben und denn leider nicht tot zu kriegenden SQL 89 Syntax zu vergessen. In dem sind outer joins kaum lesbar umzusetzen.

    [HIGHLIGHT=SQL]select a.artikel_nr,
    b.artikel_link,
    b.artikel_bildlink,
    c.artikel_name1,
    c.artikel_name2,
    c.artikel_name3,
    c.artikel_preis,
    c.artikel_gewicht,
    c.artikel_ean,
    d.artikel_text
    from Artikel_aktiv a
    inner join Artikel_Links b on a.artikel_nr = b.artikel_nr
    inner join Artikel_Werte c on a.artikel_nr = c.artikel_nr
    left join dbo_beschreibung d on d.artikel_nr = a.artikel_nr
    limit 0,100[/HIGHLIGHT]

    Comment


    • #3
      Super Danke für Deine Hilfe!

      Comment

      Working...
      X