Intrebare interviu
Moderatori: Zamolxe, Moderatori
Intrebare interviu
Ma poate ajuta cineva cu un "indiciu" pentru a solutiona aceasta cerinta? Inteleg cerinta si de ce trebuie sa obtin acel rezultat dar nu imi dau seama cum pot face asta dintr-o singura interogare
- Fişiere ataşate
-
- Untitled.png (89.42 KiB) Vizualizat de 2717 ori
- virus
- Average Member
- Mesaje: 153
- Membru din: Dum Feb 27, 2011 3:16 pm
- Localitate: Timisoara
- Contact:
Re: Intrebare interviu
Cod: Selectaţi tot
SELECT START_TIME FROM `TABLE_NAME` WHERE CONTAINER_EVENT_ID = 13666774
echo ($busy === TRUE) ? "F**k Off" : "Hello. Can I help You?" ;
Re: Intrebare interviu
Mersi pentru raspuns. Dar nu te-ai uitat si ce scrie dupa intrebare (The result should be 1836000, 1836000, 1891011, 1234567)
- vectorialpx
- Senior Member
- Mesaje: 4832
- Membru din: Mar Mar 01, 2005 9:48 am
- Localitate: Bucuresti
- Contact:
Re: Intrebare interviu
Este destul de complicat, pentru ca primul element este dublat.
O idee, fara primul element:
edit // probabil ca se mai poate face un join pentru acel prim element sau, o alta abordare.
Chiar sunt curios daca mai are altcineva o alta solutie.
Pentru cine mai vrea sa incerce, test table:
Adaptat, trebuie sa returneze 12, 12, 13, 14, 15 DAR nu si 16
In acest moment, SQL-ul meu returneaza 12, 13, 14, 15
O idee, fara primul element:
Cod: Selectaţi tot
SELECT
tt1.`start_time`,
@eventId := tt1.`event_id`
FROM `test_table` tt1
JOIN ( SELECT @eventId :=1 ) tmp
WHERE
`event_id` = 1
OR `container_event_id` = @eventId
edit // probabil ca se mai poate face un join pentru acel prim element sau, o alta abordare.
Chiar sunt curios daca mai are altcineva o alta solutie.
Pentru cine mai vrea sa incerce, test table:
Cod: Selectaţi tot
CREATE TABLE IF NOT EXISTS `test_table` (
`event_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`start_time` int(11) NOT NULL,
`container_event_id` int(11) DEFAULT NULL,
PRIMARY KEY (`event_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ;
INSERT INTO `test_table` (`event_id`, `start_time`, `container_event_id`) VALUES
(1, 12, NULL),
(2, 13, 1),
(4, 14, 2),
(5, 15, 4),
(6, 16, 1);
Adaptat, trebuie sa returneze 12, 12, 13, 14, 15 DAR nu si 16
In acest moment, SQL-ul meu returneaza 12, 13, 14, 15
Re: Intrebare interviu
Scuze, am uitat sa mai verific acest topic. Imi poti da o referita, te rog, pentru acel select pe care faci join?
- vectorialpx
- Senior Member
- Mesaje: 4832
- Membru din: Mar Mar 01, 2005 9:48 am
- Localitate: Bucuresti
- Contact:
Re: Intrebare interviu
Daca nu specifici clauza ON la un INNER JOIN, de fapt se va face un CROSS JOIN
Acest CROSS JOIN este de fapt un produs cartezian (in cazul nostru, intre atribuirea SELECT @eventId :=1 si @eventId := tt1.`event_id`)
Oricum, am observat acum ca rezultatul este acelasi si fara acel JOIN.
Acest CROSS JOIN este de fapt un produs cartezian (in cazul nostru, intre atribuirea SELECT @eventId :=1 si @eventId := tt1.`event_id`)
Oricum, am observat acum ca rezultatul este acelasi si fara acel JOIN.
Cine este conectat
Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 21 vizitatori