SQL - Joins

Door Mitch X, 24 jaar geleden, 9.311x bekeken

Hoe werken joins en wat doen ze nou eigenlijk?

Gesponsorde koppelingen

Inhoudsopgave

  1. SQL - Joins

 

Er zijn 21 reacties op 'Sql joins'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
B a s
B a s
24 jaar geleden
 
0 +1 -0 -1
He Mitch, leuke tutorial :) Ik snap alleen niet echt waar het goed voor is.. bijvoorbeeld:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?
     > FROM autos
       > LEFT JOIN coureurs
       > ON( autos.c_id = coureurs.id );
?>


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 :$
Mitch X
Mitch X
24 jaar geleden
 
0 +1 -0 -1
Dat staat er ook bij, alleen inner join doet wat jij zegt, right & left join werken anders, zoals in de tut dus ook staat :)

Kzal morgen wel ff wat verduidelijken :P
Bram Z
Bram Z
24 jaar geleden
 
0 +1 -0 -1
NIce tut nu snap ik dit eingelijk ...
PrisonerOfPain
PrisonerOfPain
24 jaar geleden
 
0 +1 -0 -1
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)
Michelos
Michelos
24 jaar geleden
 
0 +1 -0 -1
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...
PrisonerOfPain
PrisonerOfPain
24 jaar geleden
 
0 +1 -0 -1
Over FOREIGN KEY's word geen woord gezegt inderdaad, net als over de verschillende indexen en constraints. Wat hier staat kan net zo goed een manual entry zijn. (niet dat de tutorial zo geweldig is, maar omdat 'ie zich op een onderdeel focust)
B a s
B a s
24 jaar geleden
 
0 +1 -0 -1
Mitch, pas dit ff aan want ik ben niet 1 van de domsten (dat denk ik tenminste :P) maar ik snap er geen bal van..

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?
       > LEFT JOIN coureurs
       > ON( autos.c_id = coureurs.id );
?>


Wat doe je daar nou precies? Waarvoor wordt LEFT JOIN gebruikt? Wat doet het precies?
Mitch X
Mitch X
24 jaar geleden
 
0 +1 -0 -1
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.


Mss moet ik dat dan NOG duidelijker maken ;)
PrisonerOfPain
PrisonerOfPain
24 jaar geleden
 
0 +1 -0 -1
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.
Mitch X
Mitch X
24 jaar geleden
 
0 +1 -0 -1
Dus wat ik schreef.
Maar jij bedoeld het vast anders dan ik.
Vincent elschot
vincent elschot
24 jaar geleden
 
0 +1 -0 -1
Mierenneuken:

"Echter; als er geen relatie gevonden word,"

moet zijn: als er in de rechter tabel geen record wordt gevonden die aan de opgegeven relatie voldoet.
Levi
levi
24 jaar geleden
 
0 +1 -0 -1
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php

include ("connect.php");

?>


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
Alfred -
Alfred -
24 jaar geleden
 
0 +1 -0 -1
Quote:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php

include ("connect.php");

?>


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?
Levi
levi
24 jaar geleden
 
0 +1 -0 -1
nou ik heb dit in in een bestand genaamd data.sql gedaan en een connect.php met de inloggegevens van de database upgeload en als ik em open dan voegt hij het op een of andere manier niet toe
Alfred -
Alfred -
24 jaar geleden
 
0 +1 -0 -1
Quote:
Misschien de handleiding eens lezen?


Vraag me af waar je gehoord hebt dat je zo dingen met een db kan doen...
St.Chessere
St.Chessere
24 jaar geleden
 
0 +1 -0 -1
Nee gek he, mischien moet je het doen met phpmyadmin.
En ik denk dat een php basiscursus ook niet verkeerd is.
Levi
levi
24 jaar geleden
 
0 +1 -0 -1
oh nou dan zal ik het wel verkeerd begrepen hebben want ik meende echt dat ik het zo moest..iig bedankt voor de tips..


24 jaar geleden
 
0 +1 -0 -1
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"


24 jaar geleden
 
0 +1 -0 -1
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
Dennis Mertens
Dennis Mertens
23 jaar geleden
 
0 +1 -0 -1
Geweldig !!!!

Eindelijk!
Hardstikke bedankt :p
LEFT JOIN saved my Online pagina
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Hipska BE
Hipska BE
23 jaar geleden
 
0 +1 -0 -1
heel erg bedankt voor deze goede uitleg!!

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. SQL - Joins

Labels

  • Geen tags toegevoegd.

PHP tutorial opties

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.