Hulp met Query
Soms ben je zolang bezig met iets dat je vastloopt op iets wat op het eerste gezicht erg eenvoudig lijkt...
Ik heb 2 tabellen;
- Persoon (id, naam, email)
- History (id, pid, optie, datetime)
Een persoon kan meerdere rijen in de 'history' hebben staan. Die optie is waar het nu om gaat... Het antwoord kan zijn a, b, c of d.
Ik wil een query waarmee ik alle personen op kan halen met achter hun naam _de laatste_ historische optie. Dus per persoon maar 1 record uit de historische database en dat moet de laatste zijn.
Kan iemand mij een trap in de goede richting geven...
Ik heb 2 tabellen;
- Persoon (id, naam, email)
- History (id, pid, optie, datetime)
Een persoon kan meerdere rijen in de 'history' hebben staan. Die optie is waar het nu om gaat... Het antwoord kan zijn a, b, c of d.
Ik wil een query waarmee ik alle personen op kan halen met achter hun naam _de laatste_ historische optie. Dus per persoon maar 1 record uit de historische database en dat moet de laatste zijn.
Kan iemand mij een trap in de goede richting geven...
Gewijzigd op 01/01/1970 01:00:00 door Arjan Kapteijn
Zoiets?
Overigens gaat de kolomnaam 'datetime' problemen opleveren waardoor bovenstaande query niet zal werken. Het is namelijk een gereserveerd woord, dus die kolomnaam zou ik even veranderen.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
SELECT
p.naam
h.optie
FROM
history h
WHERE
p.id = h.pid
AND
h.datetime = (
SELECT datetime
FROM history
WHERE pid = h.pid
ORDER BY datetime DESC
LIMIT 1 )
p.naam
h.optie
FROM
history h
WHERE
p.id = h.pid
AND
h.datetime = (
SELECT datetime
FROM history
WHERE pid = h.pid
ORDER BY datetime DESC
LIMIT 1 )
Overigens gaat de kolomnaam 'datetime' problemen opleveren waardoor bovenstaande query niet zal werken. Het is namelijk een gereserveerd woord, dus die kolomnaam zou ik even veranderen.
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
Perfect, ik heb hiermee exact hetzelfde bereikt;
Nu heb ik die optie er niet bijstaan, maar aangezien ik keurig netjes een ID terugkrijg moet dat geen probleem meer zijn ;). THANKS!
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
SELECT
naam
FROM
persoon
WHERE id =
(
SELECT
pid
FROM
historie
WHERE
optie = 1
ORDER BY
datetime DESC
LIMIT 1
)
naam
FROM
persoon
WHERE id =
(
SELECT
pid
FROM
historie
WHERE
optie = 1
ORDER BY
datetime DESC
LIMIT 1
)
Nu heb ik die optie er niet bijstaan, maar aangezien ik keurig netjes een ID terugkrijg moet dat geen probleem meer zijn ;). THANKS!