- Rietberg - sieben Mal sympatisch -
There are only 10 types of people, those who make stupid jokes about binary numbers and those who don't.
'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.
Verwijderd
JOINs zijn op dit moment even niet mijn vriend, DISTINCT ook niet...-NMe- schreef op maandag 09 januari 2006 @ 18:01:
Ja, dat kan gewoon. Je bent, gezien je tabelstructuur, bekend met joins. Die kun je hiervoor toch ook gewoon gebruiken?
Stel 3 gebruikers hebben eenzelfde adres ingevuld. Dan staat er ergens in tabel adreslijst_link zoiets als dit.
| gebruikers id | adres id |
| 1 | 1 |
| 2 | 1 |
| 3 | 1 |
Hoe krijg ik mijn JOIN dan zover om zoiets als dit te geven:
| adres id | adres | gebruikers |
| 1 | Blastraat 23 | Jan,Piet,Klaas |
Ik krijg een donkerbruin gevoel dat dit niet kan, klopt dat? Hoopte het te kunnen doen zonder weer een van mijn vunzige PHP-workarounds te hoeven gebruiken...
Edit:
Ok, na alle mogelijke join combi's te hebben uitgeprobeerd
| adres id | adres | gebruiker |
| 1 | Blastraat 23 | Jan |
| 1 | Blastraat 23 | Piet |
| 1 | Blastraat 23 | Klaas |
[ Voor 27% gewijzigd door arieleks op 09-01-2006 19:02 ]
- Rietberg - sieben Mal sympatisch -
There are only 10 types of people, those who make stupid jokes about binary numbers and those who don't.
'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.
*
FROM users AS u
INNER JOIN linktabel AS l ON u.uid=l.userid
INNER JOIN adressen AS a ON a.uid=l.adresid
WHERE u.id=JE USER ID
Zoiets?
Overigens zou ik de tabel users weglaten omdat je daar weinig andere informatie in hebt zitten in vergelijking tot je adressen tabel. Ik zou dus gewoon een kolom username en wachtwoord aan je adressentabel toevoegen.
[ Voor 53% gewijzigd door djluc op 09-01-2006 19:15 ]
Die van mij ziet er ietsjes anders uit, maar doet hetzelfde.djluc schreef op maandag 09 januari 2006 @ 19:13:
SELECT
*
FROM users AS u
INNER JOIN linktabel AS l ON u.uid=l.userid
INNER JOIN adressen AS a ON a.uid=l.adresid
WHERE u.id=JE USER ID
Zoiets?
Helaas geen optie. Er staat een hoop meer info in de gebruikerstabel, had ik alleen even weggelaten.Overigens zou ik de tabel users weglaten omdat je daar weinig andere informatie in hebt zitten in vergelijking tot je adressen tabel. Ik zou dus gewoon een kolom username en wachtwoord aan je adressentabel toevoegen.
Tsja, daar ben ik ook bang voor. Helaas.-NMe- schreef op maandag 09 januari 2006 @ 19:10:
Ja, dat is toch precies wat je hebben moet? Uiteindelijk ga je dan in je applicatielaag de weergave regelen en dubbele gegevens eruit filteren.
Maar toch nuttig om even te kijken of wat ik wilde uberhaupt wel mogelijk was op de simpele manier...
En wat de een 'weergave regelen in applicatielaag' noemt, noemt de ander 'vunzigheden in PHP'
- Rietberg - sieben Mal sympatisch -
There are only 10 types of people, those who make stupid jokes about binary numbers and those who don't.
Oh, misschien is het wel mogelijk hoor, maar de vraag is dan of het efficiënter zou zijn dan wanneer je het in PHP doet. Je zou dan, als het mogelijk is, namelijk zelf strings moeten gaan concateneren, eventueel in een subquery, en dat zou ook redelijk veeleisend zijn, en een hele lelijke query opleveren.arieleks schreef op maandag 09 januari 2006 @ 19:29:
Maar toch nuttig om even te kijken of wat ik wilde uberhaupt wel mogelijk was op de simpele manier...
En wat de een 'weergave regelen in applicatielaag' noemt, noemt de ander 'vunzigheden in PHP'
Eufemismen houden PHP-coders happy.
'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.
Nou, het is gelukt hoor.-NMe- schreef op maandag 09 januari 2006 @ 19:40:
[...]
Oh, misschien is het wel mogelijk hoor, maar de vraag is dan of het efficiënter zou zijn dan wanneer je het in PHP doet. Je zou dan, als het mogelijk is, namelijk zelf strings moeten gaan concateneren, eventueel in een subquery, en dat zou ook redelijk veeleisend zijn, en een hele lelijke query opleveren.
[...]
offtopic:
Eufemismen houden PHP-coders happy.
Thanks.
Ach, vergeleken met Java is alles smerig. Hoewel het wel een verademing is om in PHP te mogen vunzen als je een hele dag old school VB6 hebt zitten proggen...
[ Voor 1% gewijzigd door arieleks op 09-01-2006 22:40 . Reden: Typo ]
- Rietberg - sieben Mal sympatisch -
There are only 10 types of people, those who make stupid jokes about binary numbers and those who don't.
En oki, met JOINS en DESTINCT kan je ook perfect werken, maar dat is hier al aangehaald. 'k Zie niet echt in wat het grote probleem is eigenlijk.
Bedrijf : Webtrix
Foto materiaal:
Nikon D7100 | Nikor AF-S DX 18-105mm | Nikor AF-S 50mm | Nikon SB600
'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.
Laat me nou toch eens met rust man!
Iedereen die in telekinese gelooft, steek a.u.b. mijn hand op
Verwijderd
Geheel offtopic;-NMe- schreef op maandag 09 januari 2006 @ 23:30:
Distinct filtert dubbele records uit, niet dubbele velden.
Ik ben van mening dat het gebruik van distinct wel degelijk toe te passen is op een veld en niet louter op een record zoals jij vermeld.
Zie hier voor een uitleg.
Zoals NMe al aangaf, heb ik die derde tabel echt nodig, vanwege het feit dat 1 adres gekoppeld kan zijn aan meerdere gebruikers.imp4ct schreef op maandag 09 januari 2006 @ 23:27:
En waarom kan je niet gewoon in je adresselijst een itempje bijzetten "gebruikers_id", allé ik weet niet je gaat 3 tabellen gebruiken waar je er eigenlijk perfect 2 voor kunt gebruiken.
En oki, met JOINS en DESTINCT kan je ook perfect werken, maar dat is hier al aangehaald. 'k Zie niet echt in wat het grote probleem is eigenlijk.
Het 'grote' probleem was dat ik het liefst met alleen een query de data uit het systeem kan krijgen zoals ik dat wil. En helaas gaat niet altijd alles zoals ik wil...
Ik heb nu gewoon even een PHP class gemaakt, waar de data uit de JOIN query in wordt gepropt, en vervolgens poept 'ie de data uit zoals ik dat wil. Als het werkt, dan werkt het.
- Rietberg - sieben Mal sympatisch -
There are only 10 types of people, those who make stupid jokes about binary numbers and those who don't.
iOS developer
Verwijderd
Is het niet mogelijk om hetzelfde adres met verschillende id's op te nemen?
Anyway... als je toch de ingeslagen weg wilt volgen, is het erg lastig om dit in 1 sql statement te doen.
Je zal eigenlijk iets als pl/sql moeten gebruiken om dit makkelijk voor elkaar te krijgen.
Het kan wel, maar dat wordt denk ik erg lastig voor een niet doorgewinterde sql-er.
Je weet nl niet hoeveel mensen er op hetzelfde adres wonen dus zal je een offset-table moeten gaan werken. De eerste keer dat ik dat gebruikt zag worden ging ik eerst maar es koffie halen.
veel succes.
Wat je van mening bent is niet relevant voor het gedrag van SQL. Wanneer je distinct gebruikt in je query doet dat alleen wat als je dubbele records terugkrijgt in je recordset. Wanneer de eerste twee velden hetzelfde zijn, maar het laatste veld verschilt, dan heb je niets aan distinct omdat de records simpelweg verschillen.Verwijderd schreef op dinsdag 10 januari 2006 @ 08:30:
Geheel offtopic;
Ik ben van mening dat het gebruik van distinct wel degelijk toe te passen is op een veld en niet louter op een record zoals jij vermeld.
Je zou hooguit gekke dingen kunnen proberen met subqueries, maar het leuke van MySQL is dat dat vaak nog niet werkt.
'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.