Avatar billede bhn.314 Nybegynder
28. januar 2004 - 16:56 Der er 18 kommentarer og
1 løsning

group_id=1 AND group_id=200

tblgroupperson

group_id | person_id
====================
1        | 33333   
200      | 77     
1        | 77     

Jeg har set mig totalt blind på følgende problemstilling: Jeg vil gerne ha' de personer der har group_id 200 og 1- ALTSÅ begge.

Dvs. noget a la:

SELECT person_id
FROM tblgroupperson
WHERE group_id=1 AND additional_id=200

Hvilket skal resultere i =>

person_id
=========
77
Avatar billede taskmgr Nybegynder
28. januar 2004 - 17:02 #1
OR istedet for AND
Avatar billede taskmgr Nybegynder
28. januar 2004 - 17:02 #2
Nej... nu så jeg jeg mig også blind på det.
Avatar billede taskmgr Nybegynder
28. januar 2004 - 17:05 #3
Du har jo ikke et felt der hedder additional_id?
Avatar billede bhn.314 Nybegynder
28. januar 2004 - 17:06 #4
Mente:

SELECT person_id
FROM tblgroupperson
WHERE group_id=1 AND group_id=200
Avatar billede taskmgr Nybegynder
28. januar 2004 - 17:08 #5
Prøv det her:

SELECT person_id
FROM tblgroupperson
WHERE group_id IN (1,200);
Avatar billede bhn.314 Nybegynder
28. januar 2004 - 17:10 #6
>>>taskmgr

Nope, så får jeg alle med der har bare 1 af de 2
Avatar billede bhn.314 Nybegynder
28. januar 2004 - 17:10 #7
Jeg vil kun ha' de personer der har begge !!!!!!!
Avatar billede limemedia Nybegynder
28. januar 2004 - 17:10 #8
ganske utestet og tænker der ikke virker helt - men er det ikke noget ala

SELECT a.person_id
FROM tblgroupperson AS a LEFT JOIN tblgroupperson AS b ON a.person_id=b.person_id
WHERE a.group_id=1 && b.group_id=200
Avatar billede bhn.314 Nybegynder
28. januar 2004 - 17:11 #9
...værdier
Avatar billede dsj Nybegynder
28. januar 2004 - 17:11 #10
Det kan du ikke som din database-struktur ser ud nu.
Avatar billede madd Nybegynder
28. januar 2004 - 17:13 #11
Du kan gøre det vha. nogle joins;

SELECT
  DISTINCT(t1.person_id) AS person_id
FROM
  tblgroupperson AS t1
LEFT JOIN
  tblgroupperson AS t2
ON
  t2.person_id = t1.person_id
WHERE
  (t1.group_id = '1' OR t1.group_id = '200') AND
  (t2.group_id = '1' OR t2.group_id = '200')

/mattias
Avatar billede bhn.314 Nybegynder
28. januar 2004 - 17:13 #12
>>> lars-jensen

Nope, det giver intet......
Avatar billede bhn.314 Nybegynder
28. januar 2004 - 17:16 #13
>>>>>>>Madd

Nope, det giver også dem der bare har 1 af de 2 værdier
Avatar billede bhn.314 Nybegynder
28. januar 2004 - 17:17 #14
>>>>>>>>>>> dsj

Det kan simpelthen ikke passe - jeg har gjort det før men har set mig blind
Avatar billede madd Nybegynder
28. januar 2004 - 17:18 #15
SELECT
  DISTINCT(t1.person_id) AS person_id
FROM
  tblgroupperson AS t1
LEFT JOIN
  tblgroupperson AS t2
ON
  t2.person_id = t1.person_id
WHERE
  (t1.group_id = '1' AND t2.group_id = '200') OR
  (t2.group_id = '1' AND t1.group_id = '200')

Yay. :)
Avatar billede dsj Nybegynder
28. januar 2004 - 17:18 #16
Du har gjort hvad før ?
Avatar billede bhn.314 Nybegynder
28. januar 2004 - 17:19 #17
>>>>>> dsj

Løst ligende problemstilling
Avatar billede bhn.314 Nybegynder
28. januar 2004 - 17:20 #18
>>>>>>>> Madd

Tak du har reddet min dag - det var guld værd.....
Avatar billede bhn.314 Nybegynder
28. januar 2004 - 17:22 #19
Jeg kunne selvfølgelig også bare bruge:

SELECT person_id FROM tblgroupperson WHERE group_id=1 OR group_id=200 GROUP BY person_id HAVING count(person_id)>1
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester