tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
2
ZUGRIFFE
450
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von kramoo
    kramoo kramoo ist offline Mitglied Silber
    Registriert seit
    Nov 2010
    Ort
    Österreich
    Beiträge
    57
    Schaffe es nicht nach langem probieren statt NOT IN die Abfrage mit einem LEFT JOIN zu verwenden.

    Code :
    1
    
    SELECT * FROM avz WHERE avz NOT IN (SELECT linkartinfos FROM backlink WHERE linkart = 'avz' AND projektid = '$projektid'

    Kann mir jemand helfen und aus der Abfrage eine Abfrage mit LEFT JOIN machen?
     

  2. #2
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Warum auch immer der NOT IN nicht gut genug ist

    Code sql:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    
    SELECT
        avz.*
    FROM
        avz
        LEFT JOIN (
            SELECT 
                linkartinfos 
            FROM 
                backlink 
            WHERE 
                linkart = 'avz' 
                AND projektid = '$projektid'
            ) S bl
            ON avz.avz = bl.inkartinfos
    WHERE       
        bl.inkartinfos IS NULL
     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  3. #3
    Avatar von kramoo
    kramoo kramoo ist offline Mitglied Silber
    Registriert seit
    Nov 2010
    Ort
    Österreich
    Beiträge
    57
    Waren noch fehler im Code.

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    SELECT a . *
    FROM avz a
    LEFT JOIN (
     
    SELECT linkartinfos
    FROM backlink b
    WHERE b.linkart = 'avz'
    AND b.projektid =15
    )b ON a.avz = b.linkartinfos
    WHERE b.linkartinfos IS NULL
    müsste so stimmen.

    Der grund ist die Performance.
    0,8s für NOT IN
    0,02s mit LEFT JOIN
    und die Datenbank wird noch um einiges größer.
     

Ähnliche Themen

  1. [MySQL] LEFT JOIN-Fehler
    Von ComFreek im Forum Relationale Datenbanksysteme
    Antworten: 1
    Letzter Beitrag: 08.01.11, 15:22
  2. mysql LEFT OUTER JOIN?
    Von wachteldonk im Forum Relationale Datenbanksysteme
    Antworten: 8
    Letzter Beitrag: 03.07.08, 10:06
  3. [MySql] Problem mit LEFT JOIN
    Von d-Stench im Forum Relationale Datenbanksysteme
    Antworten: 2
    Letzter Beitrag: 27.07.06, 22:34
  4. [MySQL] zwei LEFT JOIN
    Von sasuki im Forum Relationale Datenbanksysteme
    Antworten: 5
    Letzter Beitrag: 10.05.04, 21:21
  5. [MySQL] zwei LEFT JOIN
    Von sasuki im Forum PHP
    Antworten: 0
    Letzter Beitrag: 08.05.04, 20:10