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
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!"
Je wilt alle records waarvan het getal uniek is, of juist niet?
In het eerste geval een join op zichzelf;
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 |
In het tweede eval bovenstaand
[ Voor 4% gewijzigd door frickY op 12-09-2005 20:57 ]
Een voorbeeld is vaak duidelijker dan een pagina met textDamien2004 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
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.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
buit is binnen sukkel
en dan nogNetForce1 schreef op maandag 12 september 2005 @ 20:27:
Zoiets?
SQL:
1 2 3 SELECT veld1, veld2, veld3 FROM tabel GROUP BY veld1, veld2, veld3
1
| HAVING count(veld0)>1 |
Lijkt mij.
Siditamentis astuentis pactum.
edit: Lukt niet
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
Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'
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'
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
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?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?
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
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'
Ok tnx hier was ik ook al mee bezig gegaan uiteraardJanoz 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.
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