Ik heb een drietal tabellen met allen vergelijkbare gegevens, deze gegevens moeten in aprate tabellen blijven, omdat het klantgegevens zijn van aparte onderaannemers binnen ons bedrijf.
Ik heb tot nu toe de tabellen samengevoegd met UNION ALL, maar wil dit nu doen met JOIN, zodat mijn SQL-statement een stuk korter wordt en dat scheelt weer in de grootte van mijn script.
Ik heb het volgende geprobeerd, maar ik kom er niet uit, hij geeft nl. geen resultaten.. Ik krijg de volgende foutmelding:
Notice: Column 'debnr' in where clause is ambiguous in W:\Web\Login\Algemeen\DB\debiteur.php on line 380
welke betrekking heeft op mysql_query($sql);
<?php
// Bouw query op met gekozen zoekveld en trefwoord
$sql = "SELECT
debiteur_ts.debnr, debiteur_ts.debnaam, debiteur_ts.postadres, debiteur_ts.locadres, debiteur_ts.wplaats,
debiteur_bs.debnr, debiteur_bs.debnaam, debiteur_bs.postadres, debiteur_bs.locadres, debiteur_bs.wplaats,
debiteur_bsu.debnr, debiteur_bsu.debnaam, debiteur_bsu.postadres, debiteur_bsu.locadres, debiteur_bsu.wplaats
FROM
debiteur_bs
INNER JOIN
debiteur_ts
INNER JOIN
debiteur_bsu
WHERE (
TRIM(debnr) NOT LIKE ''
ORDER BY debnr" or trigger_error(mysql_error());
?>
Dat werkt, maar het gebruik van een ALIAS is vaak duidelijker.
<?php
"SELECT * FROM
artikelen AS art
JOIN
k_artikel_catogorie AS a_cat
ON
a_cat.artikel_id = art.artikel_id
JOIN
catogorieen AS cat
ON
cat.catogorie_id = a_cat.catogorie_id
WHERE
cat.catogorie_id = ".$catogoryID;
?>
Ik heb AS bij de ALIAS toegevoegd voor de leesbaarheid
<?php
"SELECT * FROM
artikelen
JOIN
k_artikel_catogorie
ON
k_artikel_catogorie.artikel_id = artikelen.artikel_id
JOIN
catogorieen
ON
catogorieen.catogorie_id = k_artikel_catogorie.catogorie_id
WHERE
catogorieen.catogorie_id = ".$catogoryID;
?>
Want daarmee zeg je; dat de artikel_id in de tabel k_artikel hetzelfde moet zijn als de artikel_id in de tabel artikel, toch? en dat wanneer dat klopt, de records ge-joint worden...