MySQL - Abfrage mit INNER JOIN + WHERE-Klausel

SELECT `views`.* FROM `views` 
    INNER JOIN memberships ON memberships.second_id = views.user_id 
    WHERE (memberships.user_id = 1 OR views.user_id = 1)

Habe ich diese MySQL query - mein problem ist, dass der zweite Teil der WHERE Klausel nicht arbeiten, abgerufen werden, werden nur die Zeilen, die gleich memberships.user_id = 1, aber schon nicht OR views.user_id = 1.

Warum nicht? Was ist falsch?

gibt es definitiv Datensätze in der Tabelle angezeigt werden (wenn es kam) mit der Abfrage übereinstimmen ?
vielleicht ist der mysql-operator UND statt ODER ... aber egal, deine Frage ist ein bisschen verwirrt, speziell "abgerufen werden nur die Zeilen" ..
Bitte ändern Sie die Erklärungen, denn es ist noch nicht klar. Vielleicht sollten Sie produzieren eine minimale Beispiel für das schema und die Beispieldaten in den Tabellen, plus das, was Sie bekommen und was Sie erwarten. Sie wahrscheinlich brauchen nur ein paar (1-4) Zeilen in views und ein paar (1-4) Zeilen in memberships zeigen Ihr problem.
Jungs, ich habe LEFT statt INNER verbinden und es funktioniert...
dann haben Sie keine Datensätze in Tabelle views wo memberships.second_id = views.user_id und views.user_id = 1

InformationsquelleAutor user984621 | 2012-02-06

Schreibe einen Kommentar