ich breche meinen Kopf auf diesem einfachen Frieden des Codes, die nicht arbeiten wollen, und ich kann von jeder anderen Lösung nicht denken ...MYSQL Subselect in where-Klausel
Könnten Sie bitte helfen damit es funktioniert?
SELECT chart FROM chart WHERE (select count(user_id) FROM users join charts ON
user_id=charts.UID and charts.chart=chart WHERE INET_NTOA(user_ip)='127.0.0.1')=0;
Es gibt drei Tabellen mit den folgenden Spalten beteiligt:
chart(
chart int(5)
);
charts(
UID int(11),
chart int(5)
);
`users` (
`user_id` int(11),
`user_ip` int(10)
);
Der Punkt ist, dass die ‚Chart‘ Spalte von der ersten sollten wählen geführt werden, um Unterabfrage = Diagramm charts.chart, sondern die Unterabfrage endet mit sich selbst zu vergleichen, dh Diagramm = Diagramm - immer wahr.
Ich weiß, dass es nicht so funktioniert ... aber ich kann wirklich nicht anders denken. Gibt es überhaupt einen Weg zu dem, was ich versuche zu tun?
EDIT 1: Grundsätzlich muss ich eine umgekehrte Auswahl:
select chart.chart from chart join charts on chart.chart=charts.chart join users
on user_id=charts.UID and INET_NTOA(user_ip)='127.0.0.1';
Diese Abfrage gibt Diagramme, die vom Benutzer mit bestimmten IP-markiert sind, zB: 1, 4,5, 9. Aber ich muss Wählen Sie die, die nicht getaggt sind, also: 2,3,6,7,8,10 und so weiter ...
EDIT 2: Ich bin auf der Suche nach einer Art von negativen Beitritt jetzt. Ich denke, das würde reichen, aber ich weiß nicht, wie ich es benutzen soll. Währenddessen machen Sie ein paar Recherchen ...
So ...... Irgendwelche Ideen? Ich bin an dieser Stelle ahnungslos ... – Anonymous