Announcement

Collapse
No announcement yet.

Bedingung beim join?

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

  • Bedingung beim join?

    Guten Tag,

    ist es möglich ein join mit einer Bedingung zu versehen?
    Sprich wenn ein bestimmtes Datenfeld 0 ist, das sich der join auf eine andere Tabelle bezieht?

  • #2
    Originally posted by sempah View Post
    Guten Tag,

    ist es möglich ein join mit einer Bedingung zu versehen?
    Sprich wenn ein bestimmtes Datenfeld 0 ist, das sich der join auf eine andere Tabelle bezieht?
    zwei (Left) Joins;
    [HIGHLIGHT="sql"]
    SELECT *
    FROM Tabelle1 AS t1
    LEFT JOIN Tabelle2 AS T2 ON T1.ID = T2.T1_Id AND Datenfeld = 0
    LEFT JOIN Tabelle3 AS T3 ON T1.ID = T3.T1_Id AND Datenfeld <> 0
    [/HIGHLIGHT]

    Comment


    • #3
      Erst einmal danke für die Antwort. Jedoch läuft es noch nicht wirklich.
      Um es vlt besser zu verstehen:

      inventar
      ------------
      computerid
      druckerid


      computer
      ------------
      computerid
      ipid


      drucker
      ------------
      druckerid
      ipid


      ip
      ------------
      ipid
      ipadresse


      --------------------------------

      Das sind meine 4 Tabellen, die Inventartabelle würde ich jetzt gerne ausgeben bzw einmal die IP vom Computer, einmal die IP vom Drucker.

      also irgendwie sowas wie:

      IF computer.ipid <> 0
      THEN left join ip on computer.ipid = ip.ipid
      ELSE left join ip on drucker.ipid = ip.ipid

      Comment


      • #4
        geht nicht
        Originally posted by sempah View Post
        IF computer.ipid <> 0
        THEN left join ip on computer.ipid = ip.ipid
        ELSE left join ip on drucker.ipid = ip.ipid
        eher so:
        Code:
        SELECT COALESCE (C.ComputerID, D.DruckerID),
                COALESCE (IPC.IP, IPD.IP)
        FROM  inventar AS  I 
        LEFT JOIN computer AS C ON  C.computerID = I.computerId 
        LEFT JOIN drucker   AS C ON  D.DruckerID = I.druckerID
        LEFT JOIN IP   AS IPC ON  IPC.IPID = C.IPID
        LEFT JOIN IP   AS IPD ON  IPD.IPID = D.IPID

        Comment

        Working...
        X