---
title: "top länder en besökre kommer ifrån."
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/127627-top-länder-en-besökre-kommer-ifrån"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "SimonG"
published: "2005-05-04T00:52:11.000Z"
updated: "2005-05-21T13:38:44.000Z"
replies: 6
views: 299
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/databaser-sql/127627-top-länder-en-besökre-kommer-ifrån"
---

# top länder en besökre kommer ifrån.

## #1 — SimonG, 2005-05-04T00:52Z

Hej, 

Jag har en tabell som innehåller ipnummer och vilket land dom tillhör och får ut rätt land och landskod med; 

```php
SELECT cc AS Country_code, cn AS Country_name
FROM geo_cc
NATURAL JOIN geo_ip
WHERE inet_aton( "200.139.130.244" )
BETWEEN START AND END LIMIT 0 , 30
```

vilket ger: 

```php
Country_code  	 Country_name
BR 	            Brazil
```

hur skall en korrekt join se ut om jag vill ta ut landet från ytterligare en tabell som har ett fältnamn "server_ip" för att lista tex dom 30 länder som förekommer mest i server_ip? (top 30 länder som besöker en sida i mitt fall)

ipt lagras i xxx.xxx.xxx.xxx formatet. 

geo_ip ser ut så här:

```php
start        end          ci
33996344 	33996351 	1
50331648 	67277055 	2
67277056 	67277119 	3
67277120 	67283519 	2
67283520 	67283583 	3
.....
```

geo_c ser ut så här:

```php
ci    cc     cn
1 	GB 	United Kingdom
2 	US 	United States
3 	CA 	Canada
4 	MX 	Mexico
5 	BM 	Bermuda
....
```

Databasen är mysql. 

Simon

Permalänk: https://www.webforum.nu/p/127627

## #2 — LarsG, 2005-05-04T08:04Z

```
SELECT cn AS Country_name,count(*) as freq
FROM geo_cc
inner JOIN geo_ip on geo_cc.ci = geo_ip.ci
inner join annantabell
on inet_aton(server_ip) between start AND end
order by freq desc 
LIMIT 0 , 30
```

Permalänk: https://www.webforum.nu/p/1605636

## #3 — SimonG, 2005-05-04T11:33Z

> **LarsG skrev:**
>
> ```
> SELECT cn AS Country_name,count(*) as freq
> FROM geo_cc
> inner JOIN geo_ip on geo_cc.ci = geo_ip.ci
> inner join annantabell
> on inet_aton(server_ip) between start AND end
> order by freq desc 
> LIMIT 0 , 30
> ```

Den kräver en group by och gruperar jag tex på tex country_name eller geo_cc.ci så tar den väääldigt lång tid. Jag dödade processen efter 40 sekunder.

Permalänk: https://www.webforum.nu/p/1605745

## #4 — LarsG, 2005-05-04T11:39Z

Jo, jag glömde group by och den skall vara på country_name.

Vad säger explain? Har du index på start/end?

Permalänk: https://www.webforum.nu/p/1605749

## #5 — SimonG, 2005-05-04T12:03Z

> **LarsG skrev:**
>
> Jo, jag glömde group by och den skall vara på country_name.
> 
> Vad säger explain? Har du index på start/end?

Explain säger: 

```
id  	select_type  	 table  	type 	possible_keys  	 key 	key_len  	 ref  	                rows  	Extra
1 	SIMPLE 	         geo_cc 	ALL 	PRIMARY 	 NULL 	NULL 	         NULL 	                232 	Using temporary; Using filesort
1 	SIMPLE 	         geo_ip 	ref 	ci 	         ci 	1 	 	 usury_usury.geo_cc.ci 	315 	Using where
1 	SIMPLE 	         usury_hits 	ALL 	NULL 	         NULL 	NULL 	 	 NULL 	                4604 	Using where
```

Det var inga index, men satte dom nu men är osäker på hur jag bekfräftar att dom är satta. 

Men via phpmyadmin får jag fram följande: 

```
Indexes: Documentation
Keyname Type 	Cardinality 	Action 	Field
start 	INDEX 	73158  	Edit 	Drop 	start
end 	INDEX 	73158  	Edit 	Drop 	end
ci 	INDEX 	232  	Edit 	Drop 	ci
```

/simon

Permalänk: https://www.webforum.nu/p/1605758

## #6 — SimonG, 2005-05-05T11:35Z

Ingenannan som sitter inne med svatet på varför det kan ta så passlång tid att exekvera frågan? 

Simon

Permalänk: https://www.webforum.nu/p/1606268

## #7 — SimonG, 2005-05-21T13:38Z

Har försökt hitta några andra lösningar utan resultat. 

igen, ingen som kan tänkas ha någon lösning, all hjälp skulle uppskattas.

Simon

Permalänk: https://www.webforum.nu/p/1615148

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/127627-top-länder-en-besökre-kommer-ifrån
