Announcement

Collapse
No announcement yet.

Eigenschaft in einer Tabelle und/oder eine Verbindung zum Eintrag in einer anderen

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

  • Eigenschaft in einer Tabelle und/oder eine Verbindung zum Eintrag in einer anderen

    Hallo,
    ich habe eine Tabelle "events" mit Einträgen, denen ein Verfasser zugeordnet ist.
    Außerdem habe ich eine Tabelle "user_connections", in denen zusätzlich Verknüpfungen zwischen Benutzern und Events eingetragen sind.
    Nun möchte ich all jene Einträge aus "events", in denen der Benutzer den Eintrag selbst verfasst hat UND/ODER er in "user_connections" mit ihm verknüpft ist. In user_connections gibt es die Felder user_id, entry_id und das Feld entry_type, letzteres einfach nur, da dort die Verknüpfungen zu verschiedenartigen Einträgen eingetragen sind. Hier ist nur "e" für events von Bedeutung.
    So funktioniert es leider nicht:
    Code:
    SELECT e.id FROM user_connections uc, events e WHERE (e.added_by = 4 OR (uc.user_id = 4 AND uc.entry_id = e.id AND uc.entry_type = 'e')) GROUP BY e.id LIMIT 0,50;
    Kann mir jemand helfen? Mit JOINS habe ich bisher nur "entweder oder" Ergebnisse bekommen können ..

    Danke schonmal!

    Johannes

    4 sei eine beliebige User-ID.

  • #2
    Hallo,
    Originally posted by herlos View Post
    So funktioniert es leider nicht:...
    Das ist ja auch ein (impliziter) INNER JOIN. Für deine Anwendung benötigst du jedoch einen OUTER JOIN und den kannst du nur explizit formulieren.

    Alternativ ist auch ein Lösung mit UNION denkbar, in der du einfach beide Teilmengen aus getrennten Abfragen vereinigst.

    Gruß Falk

    P.S.: Formatierung von SQL in Beiträgen
    Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

    Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

    Comment


    • #3
      Vielen Dank!
      Ich habe es jetzt mit EXISTS gelöst. Nicht elegant, aber in diesem Fall denk ich das einfachste.
      Und das mit der Formatierung werrde ich zukünftig beachten

      Comment

      Working...
      X