Ja sorry, ik had het 2e rijtje nog niet gezien.
Een id heeft normaal een unieke waarde waaraan je hem kan herkennen, Kun je niet gewoon alle dubbele namen/id eruit halen en hem dan op uniek zetten?
Nee dat gaat niet :\
Ik wil die andere namelijk behouden.
Beiden tabellen zijn namelijk apart ook uit te lezen en dan worden alle rows uitgelezen.
Die JOIN die ik wil hebben is een lijstje met (bijvoorbeeld) de laatste aankoop van een persoon.
Alle personen zijn appart te bekijken.
En alle aankomen zijn ook appart te bekijken.
Als je het over een 'laatste aankoop' hebt, kun je dat nooit aan het id in een tabel afleiden. Het id gebruik je alleen voor het uniek aanduiden van records en heeft verder helemaal geen waarde. Ook het verhaal dat je toch auto_increment gebruikt gaat niet op, zodra jij bijvoorbeeld namelijk een backup terug plaatst, hebben oudere records een hoger id.
Nee, als je iets in de tijd wilt vastleggen, zul je een datum/tijd stempel aan de records toe moeten kennen. Dus in tabel2 heb je nog een DATETIME kolom nodig waarin je dat gegeven opslaat.
De volgende query zou je dan kunnen gebruiken om de laatste aankopen te selecteren:
SELECT
t1.naam,
MAX(t2.datumtijdveld) AS tijdstip
FROM
tabel1 AS t1
INNER JOIN
tabel2 AS t2
ON t1.id = t2.user_id
GROUP BY
t1.naam
Velden bevatten idd een DATETIME veld.
Nu ander probleem als ik een WHERE toe voeg geeft hij helemaal niks meer.
Datum moet groter zijn dan vandaag...
Resultaat niks en hij moet minimaal vier resultaten geven :\