webForumDet fria alternativet

Behöver hjälp med att inte visa dubletter i tabeller?

Databaser & SQL

1 svar · 295 visningar · startad av Ken

Medlem sedan mars 2004252 inlägg
Frågan#1

Jag visar 5 st tabeller med hjälp av union i alfabetisk ordning och det fungerar bra.
Koden

1: $query = "(select distinct(name1),tele, find, gsm from ekasen where name1 != '-') union (select distinct(name1),tele, find, gsm from ledning where name1 != '-') 
2: union (select distinct(name1),tele, find, gsm from stod where name1 != '-') union (select distinct(name1), tele, find, gsm from vns where name1 != '-') 
3: union (select distinct(name1),tele, find, gsm from ovrigt where name1 != '-') order by name1 asc";

Ifall det finns dubletter på namn men olika nummror(tele), kan få att namnet endast visas en gång, så att inte namnet upprepas, men nog numrorna.

Strukturen på tabellerna.

1: +----------+--------------+------+-----+---------+----------------+ 
2: | Field    | Type         | Null | Key | Default | Extra          | 
3: +----------+--------------+------+-----+---------+----------------+ 
4: | id       | int(11)      |      | PRI | NULL    | auto_increment | 
5: | section  | varchar(150) | YES  |     | NULL    |                | 
6: | descripe | text         | YES  |     | NULL    |                | 
7: | name1    | text         | YES  |     | NULL    |                | 
8: | tele     | varchar(100) | YES  |     | NULL    |                | 
9: | find     | varchar(100) | YES  |     | NULL    |                | 
10: | gsm      | varchar(100) | YES  |     | NULL    |                | 
11: | dateinfo | varchar(100) | YES  |     | NULL    |                | 
12: +----------+--------------+------+-----+---------+----------------+
Medlem sedan dec. 200012 464 inlägg
#2

Vilken version av Mysql?

Om det finns flera förekomster av ett namn med olika tele, hur väljer du vilket tele som skall hämtas?

Varför har du 5 likadana tabeller?

distinct är ingen funktion så jag förstår inte varför du skriver distinct(namn).

Om man använder union så tas duplikat bort så distinct fyller ingen funktion i detta fall.

() kring varje enskild select-fråga är också helt onödiga.

261 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)