Toon posts:

[Sql] dubbele query op 1 tabel :X

Pagina: 1
Acties:

Verwijderd

Topicstarter
code:
1
2
3
4
5
6
7
8
9
10
11
SELECT
     distinct(sd_hash_fake.user_ip),
     count(sd_hash_f.id) as count
FROM
     sd_hash_fake
LEFT JOIN
     sd_hash_fake AS sd_hash_f
ON
     sd_hash_f.user_ip = sd_hash_fake.user_ip
GROUP BY
     sd_hash_fake.id


dan krijg ik het volgende te zien :X

code:
1
2
3
4
5
6
7
8
9
10
11
12
Showing rows 0 - 30 (897719 total)
 
user_ip  count  
216.111.80.167 1 
80.212.28.234 947 
212.35.104.71 1 
212.186.24.117 1 
64.24.236.38 30 
217.40.232.118 1 
217.39.78.79 1 
10.15.1.11, 10. 1 
10.15.1.12, 10. 2


dat is alles :{ wat moet ik hier nu mee en tevens duurt deze query 1-4 secs :X

weet iemand hoe ik vanuit 1 tabel een query kan doen om te sjekken hoeveel items er in staan per ip..

:X vage zooi :P

  • Jelmer
  • Registratie: Maart 2000
  • Laatst online: 22:02
SELECT user_ip, count(*) FROM sd_hash_fake GROUP BY user_ip

Semester 1 SQL HvU :P (mag ik wel hopen dat ik het goed onthouden heb :X)

[ Voor 24% gewijzigd door Jelmer op 30-01-2003 21:37 ]


Verwijderd

Topicstarter
Jelmer schreef op 30 januari 2003 @ 21:37:
SELECT user_ip, count(*) FROM sd_hash_fake GROUP BY user_ip

Semester 1 SQL HvU :P (mag ik wel hopen dat ik het goed onthouden heb :X)
:X wat ben ik ook een ukkel :{ grin, maar klopt helemaal :)

Ik had al zoiets geprobeerd maar dat werkte niet dus deed ik een poging voor een moeilijker query :)

[ Voor 15% gewijzigd door Verwijderd op 30-01-2003 21:46 ]


Verwijderd

Topicstarter
verder heb ik een klein probleempje met deze query

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
SELECT
    sd_item.id,
    sd_item.title,
    sd_item_vote.vote
FROM
    sd_hash_cnt

LEFT JOIN
    sd_hash
ON
    sd_hash_cnt.hash_id = sd_hash.id

LEFT JOIN
    sd_item
ON
    sd_item.id = sd_hash.item_id

LEFT JOIN
    sd_item_vote
ON
    sd_item_vote.user_id = sd_item.id
WHERE
    sd_hash_cnt.user_ip =  '62.254.0.47'
GROUP BY
    sd_item.id


hij werkt snel, nix mee aan de hand: wat ie moet doen is: alle gedownloade items halen uit data van sd_hash en de tabel waar downloads in geregistreerd zijn op ip en of user_id

dus via een query met userip op sd_hash_cnt haal ik daaruit de hash_id en daarvan lees ik de item_id uit en deze gebruik ik om de titel en id van het item uit te lezen zodat ik deze kan laten zien om op te voten ;)

uitkomst

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Showing rows 0 - 16 (16 total)

id  title  vote  
7 Babewatch NULL 
9 Millenium erotic collection NULL 
541 Ravenous NULL 
581 Signs NULL 
612 Star Trek: Nemesis NULL 
748 Lord of the Rings: The Two Towers, The NULL 
760 Titanic NULL 
777 XXX NULL 
815 Sexy Nurses 2 NULL 
929 House on Haunted Hill NULL 
943 8 Mile NULL


nou die 16 klopt nie :P en kan ik verder ook sorteren op value NULL?

Verwijderd

Topicstarter
niemand verder? :'(

Verwijderd

wrom doe je niet:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
SELECT
    item.id,
    item.title,
    vote.vote
FROM
    sd_hash_cnt as cnt,
    sd_hash as hash,
    sd_item as item,
    sd_item_vote as vote
WHERE
    cnt.hash_id = hash.id
AND
    item.id = hash.item_id
AND
    vote.user_id = item.id
WHERE
    cnt.user_ip =  '62.254.0.47'
GROUP BY
    item.id


of mis ik nu grandioos wat de bedoeling is?

Verwijderd

Topicstarter
ik heb het al gefixt dude ;) het was de bedoeling om alle NULL items te filteren en dat kon met where blaat is NULL :)
Pagina: 1