webForumDet fria alternativet

dubletter left join

Databaser & SQL

5 svar · 528 visningar · startad av jboy_87

Medlem sedan aug. 20011 099 inlägg
Frågan#1

hejsan hur får jag bort dubletterna?
testade även med DISTINCT

select gang.ID,rubrik,medlemmar,max,admin,ikon,datum, gang_medlem.GruppID from gang
left JOIN gang_medlem ON gang_medlem.GruppID = gang.ID where gang_medlem.anv = '".$anv."' or gang.admin = '".$anv."'
order by gang.rubrik
Medlem sedan dec. 200012 464 inlägg
#2

Vilka dubletter? Ge exempel på datainnehåll och förväntat resultat.

Varför left join? Eftersom du har villkoret

where gang_medlem.anv = '".$anv."'

så blir det samma resultat som om du använt en inner join.

Medlem sedan aug. 20011 099 inlägg
#3

jag vet inte varför man använder en left join jag vet bara vad inner join är.
Experimenterade mig fram det funkade nästan?

Admins som skapar grupper är inte medlemmar i tabellen gang_medlemmar.. endast medlemmar som joinar gruppen hamnar i gang_medlemmar. hoppas det hjälper?

ID är kopplat till GruppID

GANG:
ID
ADMIN

GANG_MEDLEMMAR
GRUPPID
ANV

**********************

Medlem sedan dec. 200012 464 inlägg
#4

Nej, det hjälper inte. Jag vill fortfarande ha datainnehåll och förväntat resultat.

Medlem sedan aug. 20011 099 inlägg
#5

hoppas det här duger?
Är man admin skall det inte finnas poster i gang_medlem men skall synas på profilen.

innodb.gif
Medlem sedan aug. 20011 099 inlägg
#6

Jag experimenterade lite och löste problemet.
Går det att göra det på bättre sätt?:

$anv = $_GET['anv'];

select gang.ID,rubrik,medlemmar,max,admin,ikon,datum, gang_medlem.GruppID,anv from gang_medlem
right join gang ON (gang.ID = gang_medlem.GruppID and gang.admin <> '".$anv."') where gang_medlem.anv = '".$anv."' or gang.admin = '".$anv."' order by gang.rubrik
256 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)