Hulp met Query
Arjan Kapteijn
30/12/2007 18:16:00Soms 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
PHP hulp
05/11/2024 15:41:38Joren de Wit
30/12/2007 18:38:00Zoiets?
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
Arjan Kapteijn
30/12/2007 19:25:00Perfect, 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!