Tutorials >
MySQL >
Joins
|
Gepost op: 13 juli 2005 - 14:15 |
|
|
|
HTML beginner
|
Ik zie steeds overal staan dat er twee id's zijn met waarde 2, maar dat lijkt me een beetje onlogisch, twee klanten die hetzelfde id hebben
Verder is het wel duidelijk |
|
|
|
Gepost op: 13 juli 2005 - 14:19 |
|
|
|
PHP ver gevorderde
|
Dit twee id's komen er omdat die persoon 2 aankopen heeft |
|
|
|
Gepost op: 13 juli 2005 - 15:00 |
|
|
|
PHP beginner
|
weet je zelf wel wat joins zijn?? aangezien dit in de categorie php staat.... |
|
|
|
Gepost op: 13 juli 2005 - 15:05 |
|
|
|
PHP ver gevorderde
|
Ow ja,
Ik had hem verkeerd gepost, sorry voor de grove fout,
En ik weet wel wat joins is, anders zou ik er nooit een tutorial over kunnen schrijven (denk je ook niet ) |
|
|
|
Gepost op: 13 juli 2005 - 22:38 |
|
|
|
PHP ver gevorderde
|
ik vind het niet echt n goede tut...
Seg, wat is nu het verschil tussen jouw JOINS en deze query:
<? $sql = mysql_query("SELECT forum_topic.*, forum_categorie.id AS categorieid, forum_categorie.naam AS categorienaam FROM forum_topic, forum_categorie WHERE '".$_GET['categorie']."' = forum_categorie.id ORDER BY laatste_reactie ASC LIMIT ".$begin.", ".$aantal_per_pagina.""); ?>
<? $sql = mysql_query("SELECT forum_topic.*, forum_categorie.id AS categorieid, forum_categorie.naam AS categorienaam FROM forum_topic, forum_categorie WHERE '".$_GET['categorie']."' = forum_categorie.id ORDER BY laatste_reactie ASC LIMIT ".$begin.", ".$aantal_per_pagina.""); ?>
|
|
|
|
Gepost op: 16 juli 2005 - 09:43 |
|
|
|
PHP expert
|
Wat is nu het verschil tussen al die manieren van JOINS, want ik vat er namelijk geen hol van. |
|
|
|
Gepost op: 20 september 2005 - 21:31 |
|
|
|
PHP ver gevorderde
|
bij een INNER JOIN:
hij neemt alles waarvan er iets in de eerste tabel zit en in de tweede.
bij een LEFT JOIN:
hij neemt alles van de eerste tabel en zet er de waarden van de tweede tabel bij. (dus alles waarvan er niets in de 2de tabel zit is dan leeg)
bij een RIGHT JOIN:
hij neemt alles van de 2de table en zet er de waarden van de 1ste tabel bij. (dus alles waarvan er niets in de 1de tabel zit is dan leeg)
bij een OUTER JOIN:
hij neemt alles waarvan er iets in de eerste tabel zit of in de tweede. (dus alles waarvan er niets in de 1de tabel zit is dan leeg en dus alles waarvan er niets in de 2de tabel zit is dan leeg)
Het is moeilijk om uit te leggen, maar als je het snapt is het heel gemakkelijk. |
|
|
|
Gepost op: 26 april 2006 - 16:28 |
|
|
|
PHP interesse
|
Citaat: [I][B]Dolfje[/B] schreef op 20 September 2005 - 21:31[/I]
bij een INNER JOIN:
hij neemt alles waarvan er iets in de eerste tabel zit en in de tweede.
bij een LEFT JOIN:
hij neemt alles van de eerste tabel en zet er de waarden van de tweede tabel bij. (dus alles waarvan er niets in de 2de tabel zit is dan leeg)
bij een RIGHT JOIN:
hij neemt alles van de 2de table en zet er de waarden van de 1ste tabel bij. (dus alles waarvan er niets in de 1de tabel zit is dan leeg)
bij een OUTER JOIN:
hij neemt alles waarvan er iets in de eerste tabel zit of in de tweede. (dus alles waarvan er niets in de 1de tabel zit is dan leeg en dus alles waarvan er niets in de 2de tabel zit is dan leeg)
Het is moeilijk om uit te leggen, maar als je het snapt is het heel gemakkelijk.
dit heeft me meer geholpen dan heel de tutorial.. THX:) |
|
|
|
Gepost op: 26 april 2006 - 18:19 |
|
|
|
PHP ver gevorderde
|
Ik heb dat dan maar in de tutorial gestoken ;) |
|
|
|
Gepost op: 23 juli 2006 - 15:38 |
|
|
|
PHP expert
|
is het ook mogelijk om alleen een bepaalde kolom uit de gejoinde tabel te halen?
dit werkt nl niet:
SELECT * FROM `wedstrijden` LEFT JOIN hallen.triviaal ON (wedstrijden.plaats = hallen.id) WHERE wedstrijden.plaats = 1
edit: dit lukt me wel, maar nu wil ik 2 joins uit 1 tabel doen, en dan begint die te bokken:
SELECT `wedstrijden`.*,
`hallen`.`triviaal`,
`teams`.`triviaal`
FROM `wedstrijden`
LEFT JOIN `hallen` ON (wedstrijden.plaats = hallen.id)
LEFT JOIN `teams` ON (wedstrijden.thuisteam = teams.id)
LEFT JOIN `teams` ON (wedstrijden.uitteam = teams.id) WHERE wedstrijden.plaats = 1
met de error:
#1066 - Niet unieke waarde tabel/alias: 'teams'
|
|
|
|
Gepost op: 23 juli 2006 - 23:55 |
|
|
|
PHP ver gevorderde
|
SELECT `wedstrijden`.*,
`hallen`.`triviaal`,
`teams`.`triviaal`
FROM `wedstrijden`
LEFT JOIN `hallen` ON (wedstrijden.plaats = hallen.id)
LEFT JOIN `teams` as teams2 ON (wedstrijden.thuisteam = teams2.id)
LEFT JOIN `teams` ON (wedstrijden.uitteam = teams.id) WHERE
zo lukt het wel ;) |
|
|
|
Gepost op: 30 september 2006 - 12:56 |
|
|
|
HTML interesse
|
Opzich mooie tut, maar als je hem eens zou nalezen zou je merken dat hij niet makkelijk leest, door de vele typfouten. |
|
|
|
Gepost op: 07 februari 2007 - 17:33 |
|
|
|
PHP ver gevorderde
|
Ik snap ondertussen de JOINS en ik gebruik ze ook al, maar nu ben ik op het volgende probleem gestuit:
Citaat: LEFT JOIN
Deze query neemt de eerste tabel en voegt de waardes van de tweede er gewoon aan toe en als iemand 2 waarden heeft (van de eerste table) word die nog eens getoond:
Maar ik wil niet dat die nog eens worden getoond... Is dat mogelijk? Of moet ik het anders aanpakken?
Edit: ik heb het ondertussen al gevonden, bedankt. (GROUP BY erbij betrekken) |
|
|
|
Gepost op: 07 februari 2007 - 17:40 |
|
|
|
PHP ver gevorderde
|
Je kan het ook door INNER JOIN en dat is een betere oplossing ;) |
|
|
|
Gepost op: 07 februari 2007 - 17:44 |
|
|
|
PHP ver gevorderde
|
Dat dacht ik ook, maar in deze situatie is een INNER niet mogelijk.
Omdat er bij sommige resultaten niet altijd een ander resultaat bestaat (klinkt misschien raar) maar bij INNER geeft hij niet alles weer.
Nu werkt het perfect. Ik gebruik LEFT JOIN in combinatie met GROUP BY |
|
|
|
Gepost op: 28 oktober 2008 - 13:45 |
|
|
|
Nieuw lid
|
Deze tutorial lijkt op het eerste zicht misschien niet zo duidelijk maar omdat het zo kort en bondig is snap ik nu eindelijk de "JOIN"
Bedankt ! |
|
|
|
Gepost op: 12 december 2008 - 11:47 |
|
|
|
Nieuw lid
|
hallo, ik heb het volgende probleem. Ik heb getracht zoveel mogelijk te normaliseren en heb nu de volgende tabellen:
plant (met plantid, kleur, soort, prijs)
plantkleur (met id, kleur)
plantsoort (met id, soort)
prijs (met id, prijs)
ik ben zover dat ik plant kan combineren met twee andere tabellen, maar het lukt me niet om die derde erbij te krijgen.
Dit is wat ik tot nu toe heb:
Select *
From (plant
LEFT JOIN plantkleur
ON plant.plantkleur=plantkleur.id)
LEFT JOIN plantsoort
ON plant.plantsoort=plantsoort.id
Dat ik alle velden laat zien is even voor het gemak en ter controle. De vraag is dus hoe kan ik de link laten zien met de tabel prijzen. Ik ben beginnend mysql-er.
Alvast bedankt! |
|
|
|
Gepost op: 02 januari 2009 - 18:44 |
|
|
|
PHP beginner
|
Hallo,
de OUTER JOIN klopt niet helemaal meer...
Hier moet nog LEFT voor komen te staan voor een goede werking. |
|
|
|
Gepost op: 17 september 2009 - 07:29 |
|
|
|
PHP ver gevorderde
|
Hartstikke bedankt, hier heb ik veel aan gehad, gewoon lekker kort en krachtig. |
|
|
Enkel aanvullende informatie is welkom. Geen prijzende of afkeurende reacties. |
|
|
|