SQL - Joins
Hoe werken joins en wat doen ze nou eigenlijk?
Gesponsorde koppelingen
Inhoudsopgave
21 reacties op 'SQL - Joins'
Gesponsorde koppelingen
He Mitch, leuke tutorial :) Ik snap alleen niet echt waar het goed voor is.. bijvoorbeeld:
Je selecteer daar velden waar de 'c_id' van autos gelijk is aan het id nummer van de tabel coureurs.. Alleen dit kan ook dus op die methode waarnaar je linkte (selecteren uit meerdere tabellen).. Maar waarom zou je dit dan gebruiken? En waar is het nuttig voor? Wat houdt 'LEFT JOIN' precies in? Je voegt velden samen maar hoe voeg je die samen?! :) Ik snap het niet echt :$
Je selecteer daar velden waar de 'c_id' van autos gelijk is aan het id nummer van de tabel coureurs.. Alleen dit kan ook dus op die methode waarnaar je linkte (selecteren uit meerdere tabellen).. Maar waarom zou je dit dan gebruiken? En waar is het nuttig voor? Wat houdt 'LEFT JOIN' precies in? Je voegt velden samen maar hoe voeg je die samen?! :) Ik snap het niet echt :$
Leuk, maar je hebt ook echt alleen join's uitgelegt, niet het nut ervan. Of de verschillende relaties (1:m, 1:1, n:1 en n:m). Nou valt de laatste misschien er iets buiten, maar die is zeker belangrijk. Dingen die erg goed aansluiten op http://www.phphulp.nl/php/tutorials/3/150/ de tutorial over normalizen (of normaliseren in het Nederlands)
ik mis eigenlijk de stap die hiervoor zit.
stel; ik heb een CD en deze wil ik toevoegen aan de database. in die database zit een tabel 'catalogus' en een tabel 'artiest'. de tabel 'catalogus' haalt automatisch uit de tabel 'artiest' de artiest van het album op. dit is omdat een artiest meerdere CD's kan hebben gemaakt en omdat een CD meerdere artiesten kan hebben (bijvoorbeeld Eminem & Dr. Dre). Hoe kan je in SQL precies ZO instellen dat de database automatisch in de tabel 'catalogus' een ID plaatst die refereert aan een ID in de tabel 'artiest'? En dan kan je dus met JOIN deze informatie aan elkaar koppelen...
stel; ik heb een CD en deze wil ik toevoegen aan de database. in die database zit een tabel 'catalogus' en een tabel 'artiest'. de tabel 'catalogus' haalt automatisch uit de tabel 'artiest' de artiest van het album op. dit is omdat een artiest meerdere CD's kan hebben gemaakt en omdat een CD meerdere artiesten kan hebben (bijvoorbeeld Eminem & Dr. Dre). Hoe kan je in SQL precies ZO instellen dat de database automatisch in de tabel 'catalogus' een ID plaatst die refereert aan een ID in de tabel 'artiest'? En dan kan je dus met JOIN deze informatie aan elkaar koppelen...
Quote:
Een left join gebruik je als er niet direct een relatie hoeft te bestaan tussen de tabellen.
Een auto hoeft natuurlijk geen coureur te hebben, als dat het geval is krijgt het betreffende veld de waarde NULL.
We gaan alle autos selecteren, en zoeken daar een evt. coureur bij.
Een auto hoeft natuurlijk geen coureur te hebben, als dat het geval is krijgt het betreffende veld de waarde NULL.
We gaan alle autos selecteren, en zoeken daar een evt. coureur bij.
Mss moet ik dat dan NOG duidelijker maken ;)
Bij een LEFT join bestaat er weldegenlijk een relatie; een een-op-veel relatie. Echter; als er geen relatie gevonden word, word het resultaat opgevult met NULL.
Bij een RIGHT join ligt de relatie net andersom, dus een veel-op-een relatie waarbij ook de nietgevonden resultaten opgevult worden met NULL.
Bij een RIGHT join ligt de relatie net andersom, dus een veel-op-een relatie waarbij ook de nietgevonden resultaten opgevult worden met NULL.
CREATE TABLE links_cat (
id int(10) unsigned NOT NULL auto_increment,
naam varchar(50) default NULL,
sort tinyint(4) default NULL,
PRIMARY KEY (id)
) TYPE=MyISAM;
CREATE TABLE links_url (
id int(10) unsigned NOT NULL auto_increment,
naam varchar(50) default NULL,
url varchar(150) default NULL,
sort tinyint(4) default NULL,
cat tinyint(4) default NULL,
email varchar(150) default NULL,
status varchar(15) default NULL,
PRIMARY KEY (id)
) TYPE=MyISAM;
als ik dit in een bestand .sql doe en dan open op itnernet moet dit toch toegevoegd worden aan de database?? want het werkt niet
Quote:
CREATE TABLE links_cat (
id int(10) unsigned NOT NULL auto_increment,
naam varchar(50) default NULL,
sort tinyint(4) default NULL,
PRIMARY KEY (id)
) TYPE=MyISAM;
CREATE TABLE links_url (
id int(10) unsigned NOT NULL auto_increment,
naam varchar(50) default NULL,
url varchar(150) default NULL,
sort tinyint(4) default NULL,
cat tinyint(4) default NULL,
email varchar(150) default NULL,
status varchar(15) default NULL,
PRIMARY KEY (id)
) TYPE=MyISAM;
als ik dit in een bestand .sql doe en dan open op itnernet moet dit toch toegevoegd worden aan de database?? want het werkt niet
CREATE TABLE links_cat (
id int(10) unsigned NOT NULL auto_increment,
naam varchar(50) default NULL,
sort tinyint(4) default NULL,
PRIMARY KEY (id)
) TYPE=MyISAM;
CREATE TABLE links_url (
id int(10) unsigned NOT NULL auto_increment,
naam varchar(50) default NULL,
url varchar(150) default NULL,
sort tinyint(4) default NULL,
cat tinyint(4) default NULL,
email varchar(150) default NULL,
status varchar(15) default NULL,
PRIMARY KEY (id)
) TYPE=MyISAM;
als ik dit in een bestand .sql doe en dan open op itnernet moet dit toch toegevoegd worden aan de database?? want het werkt niet
Hoe het werkt niet? Misschien de handleiding eens lezen?
Left join = als je van de table die als left (in dit geval autos) ZEKER alle records wilt zien !, m.a.w: een overeenkomende id in de table [coureurs] hoeft dus niet perse te bestaan !
MS T-SQL: "Inner joins return rows only when there is at least one row from both tables that matches the join condition. Inner joins eliminate the rows that do not match with a row from the other table. Outer joins, however, return all rows from at least one of the tables or views mentioned in the FROM clause, as long as those rows meet any WHERE or HAVING search conditions. All rows are retrieved from the left table referenced with a left outer join, and all rows from the right table referenced in a right outer join. All rows from both tables are returned in a full outer join"
MS T-SQL: "Inner joins return rows only when there is at least one row from both tables that matches the join condition. Inner joins eliminate the rows that do not match with a row from the other table. Outer joins, however, return all rows from at least one of the tables or views mentioned in the FROM clause, as long as those rows meet any WHERE or HAVING search conditions. All rows are retrieved from the left table referenced with a left outer join, and all rows from the right table referenced in a right outer join. All rows from both tables are returned in a full outer join"
He gasten, al je eens wat meer van database opzet wilt weten, zoek dan eens naar MS ACCESS uitleg, je komt dan van alles tegen over tabbellen relaties, qeuries views etc. en binnen Access kun je ook werken met wat SQL programmering. Of haal gewoon eens een boek over SQL uit de Bieb, kortom succes d'r mee en een zeer handige site hierzo! wil net beetje beginnen met eigen webservertje op te zetten, en kom hier veel goede info tegen, bedankt!
Groeten Jan Pieter
Groeten Jan Pieter
Om te reageren heb je een account nodig en je moet ingelogd zijn.
- Details
Door:
Mitch- 9 jaar geleden
- 2.256 x bekeken
- Labels
- Geen tags toegevoegd.
- PHP tutorials opties
- Overig
- Nieuwste PHP tutorials
- PHP tutorial toevoegen


PHP hulp
0 seconden vanaf nu