Ik heb nu twee tabellen waar ik happy mee ben.
Dit zijn twee queries die ik heb gemaakt:

// de is query voor de tabel: beardie_fokkers
$sql = "SELECT fokker_id, fokker_kennelnaam, fokker_naam, fokker_telnr, fokker_email, fokker_website FROM beardie_fokkers";

// de query voor de tabel: beardie_nest
$sql = "SELECT nest_id, nest_geboortedatum, nest_nest_moeder, nest_vader, nest_geslacht_kleur, nest_betaald FROM beardie_nest";

Wat ik mis is dat ze beide aan elkaar worden gemaakt (gelinkt) tot 1 query en ik weet niet hoe dit te doen. Dus dat ik uiteindelijk 1 query krijg welke ùit beide tabellen de velden haalt zoals in beide queries vraag.

Uitgeschreven met de bijbehorende velden van betreffende tabellen:
$sql = 'SELECT fokker_kennelnaam, fokker_naam, fokker_telnr, fokker_email, fokker_website FROM beardie_fokkers WHERE fokker_id=nest_id';

Maar ik weet dat dit niet goed gaat maar zie even niet hoe op te lossen. Wie weet raad?
Als je fokker_id gelijk is aan het nest_id (wat betekend dat een fokker maar 1 nest kan hebben) dan kan het bijvoorbeeld zo:


SELECT bn.nest_id, bn.nest_geboortedatum, bn.nest_nest_moeder, bn.nest_vader, bn.nest_geslacht_kleur, bn.nest_betaald,
       bf.fokker_id, bf.fokker_kennelnaam, bf.fokker_naam, bf.fokker_telnr, bf.fokker_email, bf.fokker_website
  FROM beardie_nest bn, beardie_fokkers bf
  WHERE bn.nest_id = bf.fokker_id

SELECT
	f.fokker_id, 
	f.fokker_kennelnaam, 
	f.fokker_naam, 
	f.fokker_telnr, 
	f.fokker_email, 
	f.fokker_website
	n.nest_id, 
	n.nest_geboortedatum, 
	n.nest_nest_moeder, 
	n.nest_vader, 
	n.nest_geslacht_kleur, 
	n.nest_betaald
FROM
	beardie_fokkers AS f,
	beardie_nest AS n
WHERE
	f.fokker_id = n.nest_id


[edit]Te laat...[/edit]
Blanche schreef op 05.10.2006 19:25

[edit
Te laat...[/edit]


wel een stukje netter
Helder en voor ik dit echt snap heb ik het dan goed dat dit allemaal hernoemde velden zijn en je krijgt wat in de tabellen staat?
<?php
SELECT
f.fokker_id,
f.fokker_kennelnaam,
f.fokker_naam,
f.fokker_telnr,
f.fokker_email,
f.fokker_website
n.nest_id,
n.nest_geboortedatum,
n.nest_nest_moeder,
n.nest_vader,
n.nest_geslacht_kleur,
n.nest_betaald
FROM
beardie_fokkers AS f,
beardie_nest AS n
WHERE
f.fokker_id = n.nest_id
?>
Left join lijkt me ook een goed idee gezien het feit dat een fokker meerdere nesten kan hebben (lijkt mij ?)
lissy schreef op 05.10.2006 19:32
Helder en voor ik dit echt snap heb ik het dan goed dat dit allemaal hernoemde velden zijn en je krijgt wat in de tabellen staat?


Klopt.. Maar met een INNER JOIN (left join) is het eigenlijk nog netter, maar dat zou je maar eens moeten kijken of je daaruit komt.. Ik wil je ook wel helpen hoor, maar ik denk dat de uitleg op de link in mijn vorige post ook goede uitleg geeft.
@ Robert: Ja graag hulp met innerjoin want dit heb ik dus nog nooit gedaan en inderdaad 1 fokker kan twee nesten hebben.

Ik heb jouw query uitgeschreven:

<?php
SELECT
bn.nest_id,
bn.nest_geboortedatum,
bn.nest_nest_moeder,
bn.nest_vader,
bn.nest_geslacht_kleur,
bn.nest_betaald,
bf.fokker_id,
bf.fokker_kennelnaam,
bf.fokker_naam,
bf.fokker_telnr,
bf.fokker_email,
bf.fokker_website
FROM
beardie_nest bn, beardie_fokkers bf
WHERE
bn.nest_id = bf.fokker_id
?>

Ik heb dit gevonden http://nl.wikipedia.org/wiki/Select_%28SQL%29:

SELECT * FROM tabel1 INNER JOIN tabel2 ON tabel1.veld = tabel2.veld
Dus bij mij:
SELECT * FROM beardie_fokkers INNER JOIN beardie_nest ON beardie_fokkers.veld = beardie_nest.veld

Hoe nu verder? Wat zet ik neer bij veld? Ik heb geen idee...
@Robert: een left join is geen inner join, maar juist een outer join.

Bij een inner join worden alleen de velden geselecteerd waarbij er bij beide tabellen een match is. Bij een left join worden alle velden van de ene (linker) tabel geselecteerd, ongeacht of er matches zijn met de tweede tabel.

@Lissy: Zou je misschien je database structuur even weer kunnen geven, dan is het wat duidelijker.
@ Blanche :
Tabel beardie_fokker
fokker_id int(11)
fokker_kennelnaam varchar(255)
fokker_plaatje varchar(255)
fokker_naam varchar(150)
fokker_adres varchar(255)
fokker_postcode varchar(10)
fokker_woonplaats varchar(255)
fokker_telnr varchar(15)
fokker_email varchar(100)
fokker_website varchar(50)
fokker_bericht text
fokker_inschrijfdatum datetime
fokker_aanmeld_ip varchar(15)

Tabel beardie_nest
nest_id int(11)
nest_geboortedatum date
nest_moeder varchar(255)
nest_vader varchar(255)
nest_geslacht_kleur varchar(255)
nest_betaald enum('ja', 'nee')

Reageren