 |
Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Comunitatea PHP Romania
|
| Subiectul anterior :: Subiectul următor |
| Autor |
Mesaj |
korfos
Data înscrierii: 02/Iul/2005
Mesaje: 49
|
| Trimis: Mie Aug 01, 2007 7:57 am Titlul subiectului: Oracle DB ... select |
|
|
Am doua tabele t1 {id, ....} si t2 {id, fk_t1_id, data, nume}.
In a 2a tabela se inregistreaza informatii despre ultima modificare a unei inregistrari din t1 (data la care s-a facut modificarea si numele celui care a modificat inregistrarea).
fk_t1_id reprezinta id-ul inregistrarii din t1 care a fost modificata.
Pentru fiecare inregistrare din t1 sunt n inregistrari in t2.
Vreau sa fac un select din t1 in care sa-mi apara si numele celui care a modificat prima oara fiecare inregistrare din t1.
Eu am inercat asa:
Cod:
SELECT
...,
(
SELECT nume
FROM t2
WHERE fk_t1_id = t1.id AND ROWNUM = 1
) AS createdby
FROM t1
dar imi returneaza ultima modificare, iar daca pun si un 'ORDER BY' in al 2lea select imi da eroare (lipseste paranteza dreapta).
Ma poate ajuta cineva? |
|
| Sus |
|
floorin
Data înscrierii: 29/Iun/2006
Mesaje: 189
|
| Trimis: Mie Aug 01, 2007 6:47 pm Titlul subiectului: |
|
|
nu am unde sa testez acum, dar mergand pe o idee proasta:
SELECT
...,
(
SELECT ics.nume
FROM (select t2.id,t2.nume,t2.fk_t1_id from t2 order by t2.id,t2.data) ics
WHERE ics.fk_t1_id = t1.id AND ROWNUM = 1
) AS createdby
FROM t1 |
|
| Sus |
|
korfos
Data înscrierii: 02/Iul/2005
Mesaje: 49
|
| Trimis: Joi Aug 02, 2007 3:00 pm Titlul subiectului: |
|
|
Am rezolvat asa:
Cod:
select ...,
(select nume
from t2
where fk_t1_id = t1.id and data = (select min(data) from t2 where fk_t1_id = t1.id) and rownum < 2
from t1
|
|
| Sus |
|
PHPRomania Bot
Bot Member
Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google |
| Trimis: Mie Dec 26, 2007 7:01 pm Titlul subiectului: Ad |
|
|
|
|
|
| Sus |
|
| |
|