Hallo,
leider hat unser Programmierer urlaub und ich habe den Auftrag bekommen per PHP MYAdmin alle Artikel ID´s zu finden, die noch keine Kommentare haben.
Hierzu muss ich die zwei Tabellen (Tabelle A = "kommentar"; Tabelle B ="daten") per INNER JOIN verbinden.
Nein. Eben nicht. Wenn es noch keine Kommentare gibt, benötigst Du einen OUTER JOIN. Du könntest auch ein Subselect nehmen.
Ich glaube da hört mein Latein einfach auf.
Wie wär's mit SQL statt Latein?
SELECT a.autor, a.inhalt, a.voting, b.bezeichnung, b.ort, b.id, b.kreis
FROM kommentar AS a INNER JOIN daten AS b ON ( a.artikel_id = b.id ) WHERE a.spam = '0' AND a.freigeschaltet = '0' ORDER BY a.datum DESC LIMIT 7
Du möchtest die ID-Werte aus der Tabelle daten haben, für die es keine entsprechung in der Tabelle kommentar gibt, am einfachsten ist dies 1:1 mit einem Subselect umzusetzen:
~~~sql
SELECT -- Gib mir
id -- die id-Werte
FROM -- aus der Tabelle
daten -- daten,
WHERE -- wobei mich nur die Datensätze interessieren,
id NOT IN ( -- deren id nicht in der Liste
SELECT
artikel_id -- der Artikel-IDs
FROM -- aus der Tabelle
kommentare -- kommentare
) -- vorkommen
Anmerkung:
Wenn Du noch weitere Informationen aus der Tabelle daten benötigst, frage diese mit ab. Da es noch keinen zugehörigen Eintrag in der Tabelle kommentare gibt, ist es nicht sinnvoll, Spalten aus der Tabelle kommentare abzufragen.
Hinweis: Aliasnamen sind oftmals sinnvoll, jedoch sollte man die Namen *sinnvoll* wählen. a und b sind keine sinnvollen Aliasnamen für "daten" und "kommentare".
Freundliche Grüße
Vinzenz