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
Jungs, ich habe
dann haben Sie keine Datensätze in Tabelle
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
Du musst angemeldet sein, um einen Kommentar abzugeben.
weil Sie sich auf
memberships.second_id
vielleicht solltememberships.user_id=views.user_id
denn wenn die Bedingungmemberships.user_id=1
true ist, wird die Aussicht.user_id ist gleich Mitgliedschaften.second_id und second_id kann nicht gleich 1LEFT JOIN
stattINNER JOIN
und es sieht aus das es funktioniert, aber ich bin mir nicht ganz sicher, ob es die richtige Art und Weisesicher, statt
1
sollteviews.user_id
- kopiert habe ich die Abfrage fro terminal-Fenster, wo sind die zahlen anstelle von Variablen.InformationsquelleAutor Melvin Protacio