| Subiectul anterior :: Subiectul următor |
| Autor |
Mesaj |
Troto
Data înscrierii: 29/Iun/2004
Mesaje: 249
Locație: Brasov
|
| Trimis: Lun Oct 29, 2007 4:04 pm Titlul subiectului: Problema cu select |
|
|
Salutare la toti
am o problema cu un select
am 3 tabele:
tabela cu useri:
idIUser userName ....
--------------------------------
1 user1
2 user2
......................
tabela cu servicii:
idService serviceName
--------------------------------
1 service1
2 service2
......................
si tabela cu legaturile intre useri si servicii:
idUser idService
--------------------------
1 1
1 2
2 1
......................
vreau sa selectez toti userii care ofera de exemplu serviciile 1 si 2 (pot oferii si alte servicii, dar acestea 2 sunt obligatorii) |
|
| Sus |
|
dechim
Data înscrierii: 10/Mai/2005
Mesaje: 698
Locație: Drobeta Turnu Severin
|
| Trimis: Lun Oct 29, 2007 7:08 pm Titlul subiectului: |
|
|
| SELECT * FROM tab_user WHERE iduser IN (SELECT iduser FROM tab_link WHERE idservice=1 OR idservice=2); |
|
| Sus |
|
Troto
Data înscrierii: 29/Iun/2004
Mesaje: 249
Locație: Brasov
|
| Trimis: Lun Oct 29, 2007 7:18 pm Titlul subiectului: |
|
|
Nu este complet dechim.
oricum, am gasit solutia numai ca am uitat sa mai postez pe forum:
SELECT .... FROM.... WHERE lnk.idService IN (1,2,3,....100) ...GROUP BY u.idUser HAVING COUNT(u.idUser) = <nr servicii in IN> |
|
| Sus |
|
dechim
Data înscrierii: 10/Mai/2005
Mesaje: 698
Locație: Drobeta Turnu Severin
|
| Trimis: Mar Oct 30, 2007 12:12 am Titlul subiectului: |
|
|
Adica un user care ofera ambele servicii apare de 2 ori.
OK! Asa e ! Trebuie adaugat GROUP BY iduser
Cod:
SELECT * FROM tab_user WHERE iduser IN (SELECT iduser FROM tab_link WHERE idservice=1 OR idservice=2) GROUP BY iduser;
N-am vrut sa incurc, numai sa ajut
Completeaza, te rog, comanda (punctele) pentru ca nu o inteleg, cred ca-i de retinut si pare o alta varianta. Multumesc |
|
| Sus |
|
Troto
Data înscrierii: 29/Iun/2004
Mesaje: 249
Locație: Brasov
|
| Trimis: Mar Oct 30, 2007 1:12 am Titlul subiectului: |
|
|
Nu e suficient numai group by
ideea cu acel subselect cu OR nu prea merge orice i-ai face.
Cat despre ultima ta fraza... nu inteleg ce vrei sa spui, dar poate sunt eu doar obosit |
|
| Sus |
|
dechim
Data înscrierii: 10/Mai/2005
Mesaje: 698
Locație: Drobeta Turnu Severin
|
| Trimis: Mar Oct 30, 2007 2:49 am Titlul subiectului: |
|
|
Scuze, nu intelesesem ideea.
GROUP BY pe care l-am adaugat este o prostie pentru ca nu are ce sa grupeze, in tabela user, utilizatorii nu se repeta.
Eu am selectat utilizatorii care ofera cel putin unul din serviciile 1 si 2, problema cerea sa selectez utilizatorii care ofera cel putin ambele servicii.
Am inteles cum ai rezolvat, e ok! |
|
| 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 |
|
| |