[MySQL] Records met zelfde gegevens weergeven

Pagina: 1
Acties:

  • Swanfield
  • Registratie: Juni 2004
  • Laatst online: 23-06-2025
Ok heb een beetje gezocht en vond wat over disinstint ofzo maar dat leek mij niet wat ik zoek.

Ik heb een database met een uniek ID redelijk standaard dus. Ik heb daarnaast een aantal velden waarvan één veld dus een getal heeft als waarde. Nu wil ik alle records hebben waarin alle velden op het unieke ID en het getallen veld na weer geeft.

Bijv. 5 velden en dan alle gelijke velden met uitzondering van veld 1 en 2.

Mocht er een hele simpele tutorial of Sql kreet hier voor zijn plaats hem dan even en dan wil ik ook wel zelf verder zoeken als dit een domme vraag is :p

Je hoeft niet goed te zijn om de beste te zijn, zolang je maar beter bent dan de rest || Het is niet belangrijk om te winnen, maar het is het enige dat telt


  • NetForce1
  • Registratie: November 2001
  • Laatst online: 23-03 10:29

NetForce1

(inspiratie == 0) -> true

Zoiets?
SQL:
1
2
3
SELECT veld1, veld2, veld3
FROM tabel
GROUP BY veld1, veld2, veld3

De wereld ligt aan je voeten. Je moet alleen diep genoeg willen bukken...
"Wie geen fouten maakt maakt meestal niets!"


  • frickY
  • Registratie: Juli 2001
  • Laatst online: 24-04 11:26
Je bent erg onduidelijk :?
Je wilt alle records waarvan het getal uniek is, of juist niet?

In het eerste geval een join op zichzelf;
SQL:
1
2
3
4
5
6
7
8
9
10
11
12
SELECT
  t1.*
FROM
  tabel AS t1
LEFT JOIN
  tabel AS t2
WHERE
    t1.id != t2.id
  AND
    t1.getal = t2.getal
GROUP BY
  t1.id
(ongeveer dan :P)

In het tweede eval bovenstaand

[ Voor 4% gewijzigd door frickY op 12-09-2005 20:57 ]


  • ripexx
  • Registratie: Juli 2002
  • Laatst online: 28-04 22:08

ripexx

bibs

Damien2004 schreef op maandag 12 september 2005 @ 19:58:
Ok heb een beetje gezocht en vond wat over disinstint ofzo maar dat leek mij niet wat ik zoek.

Ik heb een database met een uniek ID redelijk standaard dus. Ik heb daarnaast een aantal velden waarvan één veld dus een getal heeft als waarde. Nu wil ik alle records hebben waarin alle velden op het unieke ID en het getallen veld na weer geeft.

Bijv. 5 velden en dan alle gelijke velden met uitzondering van veld 1 en 2.

Mocht er een hele simpele tutorial of Sql kreet hier voor zijn plaats hem dan even en dan wil ik ook wel zelf verder zoeken als dit een domme vraag is :p
Een voorbeeld is vaak duidelijker dan een pagina met text ;)
NetForce1 schreef op maandag 12 september 2005 @ 20:27:
Zoiets?
SQL:
1
2
3
SELECT veld1, veld2, veld3
FROM tabel
GROUP BY veld1, veld2, veld3
Oke de TS werkt met MySQL maar het is gewoon misbruik maken van de group by. Dus niet echt wenselijk. De genoemde opties van frickY geven je weer wat zoek mogelijkheden.

buit is binnen sukkel


  • Varienaja
  • Registratie: Februari 2001
  • Laatst online: 14-06-2025

Varienaja

Wie dit leest is gek.

NetForce1 schreef op maandag 12 september 2005 @ 20:27:
Zoiets?
SQL:
1
2
3
SELECT veld1, veld2, veld3
FROM tabel
GROUP BY veld1, veld2, veld3
en dan nog
code:
1
HAVING count(veld0)>1

Lijkt mij.

Siditamentis astuentis pactum.


  • Swanfield
  • Registratie: Juni 2004
  • Laatst online: 23-06-2025
Effe proberen :) Post nog als het gelukt is :) tnx in advanged :)

edit: Lukt niet :'(

SQL:
1
2
3
4
5
SELECT t1. * 
FROM HT AS t1
LEFT JOIN HT AS t2
WHERE t1.Scoren != t2.Scoren AND t1.Verdedigen = t2.Verdedigen
LIMIT 0 , 30 


Wat ik wil is dus dat hij niet de ID en het getal gaat vergelijken. Dus ik heb bijvoorbeeld allemaal skills van een voetballer en ik wil degene zoeken waar de skills van gelijk zijn en het getal en unieke ID afwijken. Dus bijvoorbeeld:

Speler A:
ID: 1
Scoren: goed
Verdedigen: slecht
Getal: 115

Speler B:

ID: 2
Scoren: goed
Verdedigen: slecht
Getal: 300

Nu wil ik deze 2 spelers in een overzicht op basis van hun gelijke skills in verdedigen en scoren. Hoop dat het zo duidelijker is :)

[ Voor 111% gewijzigd door Swanfield op 12-09-2005 23:27 ]

Je hoeft niet goed te zijn om de beste te zijn, zolang je maar beter bent dan de rest || Het is niet belangrijk om te winnen, maar het is het enige dat telt


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 29-04 08:14

Janoz

Moderator Devschuur®

!litemod

Tja, 'lukt niet' hebben we weinig aan. Het is misschien handiger wanneer je wat meer informatie geeft over wat je nu eigenlijk wilt en hoe je database eruit ziet. Geef eventueel (zoals ook al door ripexx is aangegeven) een voorbeeldje van de resultaten zoals jij ze er uit wilt hebben.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 29-04 08:14

Janoz

Moderator Devschuur®

!litemod

Ah, ok, dan wordt het duidelijker. Zoals jij het omschrijft kan het niet. Hoe moet de database immers gokken welke skill je wilt hebben?

Stel je hebt 4 voetballers. 2 hebben slecht, 2 hebben goed. Wil je dan de twee goeden, wil je de twee slechten of wil je ze allemaal?

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • Swanfield
  • Registratie: Juni 2004
  • Laatst online: 23-06-2025
Heb ik hierboven toch gedaan ?

Heb mijn post ge-edit....

Je hoeft niet goed te zijn om de beste te zijn, zolang je maar beter bent dan de rest || Het is niet belangrijk om te winnen, maar het is het enige dat telt


  • Swanfield
  • Registratie: Juni 2004
  • Laatst online: 23-06-2025
Janoz schreef op maandag 12 september 2005 @ 23:32:
Ah, ok, dan wordt het duidelijker. Zoals jij het omschrijft kan het niet. Hoe moet de database immers gokken welke skill je wilt hebben?

Stel je hebt 4 voetballers. 2 hebben slecht, 2 hebben goed. Wil je dan de twee goeden, wil je de twee slechten of wil je ze allemaal?
Ja eigenlijk hoopte ik daar dan wel op dat de database zelf de gelijke records zou kunnen kiezen maar dat is dan niet mogelijk begrijp ik?

Je hoeft niet goed te zijn om de beste te zijn, zolang je maar beter bent dan de rest || Het is niet belangrijk om te winnen, maar het is het enige dat telt


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 29-04 08:14

Janoz

Moderator Devschuur®

!litemod

Toen ik die post tikte stond je edit er nog niet ;)

De database kan heel goed de gelijke records kiezen, maar je kunt niet aangeven welke gelijke records hij moet teruggeven. Wat hij moet kiezen moet je natuurlijk eerst voor jezelf duidelijk hebben voordat je die keuze implementeerd in je sql statements.

Wat je zou kunnen doen om spelers met dezelfde skills bij elkaar te zetten is de sorteren op die skills en vervolgens in je ondersteunende code deze resultset uitlezen. Zolang de skills hetzelfde zijn horen ze in dezelfde groep. Zijn de skills anders dan ben je bij een nieuwe groep.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • Swanfield
  • Registratie: Juni 2004
  • Laatst online: 23-06-2025
Janoz schreef op maandag 12 september 2005 @ 23:39:
Toen ik die post tikte stond je edit er nog niet ;)

De database kan heel goed de gelijke records kiezen, maar je kunt niet aangeven welke gelijke records hij moet teruggeven. Wat hij moet kiezen moet je natuurlijk eerst voor jezelf duidelijk hebben voordat je die keuze implementeerd in je sql statements.

Wat je zou kunnen doen om spelers met dezelfde skills bij elkaar te zetten is de sorteren op die skills en vervolgens in je ondersteunende code deze resultset uitlezen. Zolang de skills hetzelfde zijn horen ze in dezelfde groep. Zijn de skills anders dan ben je bij een nieuwe groep.
Ok tnx hier was ik ook al mee bezig gegaan uiteraard :p maar dacht dat ik misschien wel een paar stapjes kon over slaan hehe

Tnx voor alle info!

Je hoeft niet goed te zijn om de beste te zijn, zolang je maar beter bent dan de rest || Het is niet belangrijk om te winnen, maar het is het enige dat telt

Pagina: 1