twee tabellen met gelijke veldnaam
ik wil met behulp van een INNER JOIN waarden halen uit twee tabellen in de database.
Dit lukt wel maar ik zit met een probleem dat beide tabellen een veld hebben met een gelijke naam... I know, het is niet handig. Maar is er een mogelijkheid om toch de waarden uit te lezen.
my sql ziet er als volgt uit:
$sqlUitlezen = mysqli_query($connection, "SELECT DISTINCT * FROM `ou` INNER JOIN `person` ON `ou`.`Z_REFERENCE_MX_MANAGER`=`person`.`MSKEYVALUE_MEDEWERKER` WHERE Z_ORG_LEVEL=2 ORDER BY `MSKEYVALUE_OU` ASC");
echo ' <td>'.$sqlData['DISPLAYNAME'].'</td>'; uit tabel `person`
echo ' <td>'.$sqlData['DISPLAYNAME'].'</td>'; uit tabel `ou`
ik zou hier enorm mee geholpen zijn...
en alvast enorm bedankt voor het meedenken, kanjers
Kun je niet gewoon aliasen gebruiken voor beide tabellen, dus zoiets als
SELECT ou.DISPLAYNAME AS DN_FROM_OU, person.DISPLAYNAME AS DN_FROM_PERSON
?
Oftewel, je kunt kolommen met dezelfde naam op tabel scheiden en dan met het AS-keyword een andere naam geven.
Hiertoe dien je wel specifiek te zijn in welke kolommen je wilt ophalen, maar dat is sowieso een goede gewoonte. Dus in plaats van * haal je bovengenoemde aliasen op, en wat je verder nog nodig hebt.
het lukt mij toch niet om een alias in de INNER JOIN op te nemen.
Hieronder mijn function waarbij het speelt:
//---------------------- begin functie
function divisies (){
global $connection;
$sqlUitlezen = mysqli_query($connection, "SELECT DISTINCT * FROM `ou` INNER JOIN `person` ON `ou`.`Z_REFERENCE_MX_MANAGER`=`person`.`MSKEYVALUE_MEDEWERKER` WHERE Z_ORG_LEVEL=2 ORDER BY `MSKEYVALUE_OU` ASC");
$sqlAantal = mysqli_num_rows($sqlUitlezen);
echo '<h3>Aantal OU'."'s".' in IDM ('.$sqlAantal.')</h3>';
if ($sqlAantal > 0){
echo '<article>';
echo '<table id="customers">';
echo ' <tr>';
echo ' <th>OU code</th>';
echo ' <th>Divisie</th>';
echo ' <th>Mngr referentie</th>';
echo ' </tr>';
while ($sqlData = mysqli_fetch_assoc($sqlUitlezen)){
echo ' <tr>';
echo ' <td><a href="?actie=divisie&ou='.str_replace(' ','+',$sqlData['MSKEYVALUE_OU']).'">'.$sqlData['MSKEYVALUE_OU'].'</a></td>';
echo ' <td>'.$sqlData['DISPLAYNAME'].'</td>';
echo ' <td>'.$sqlData['DISPLAYNAME'].'</td>';
echo ' </tr>';
}
echo '</table>';
echo '</article>';
}else{
echo 'Sorry, ik geen OU'."'s".' kunnen vinden!';
}
}
//---------------------- eindefunctie
is er een expert in da house die me hiermee op weg kan helpen...
thank you guys
Toevoeging op 31/01/2019 19:53:09:
Zelf kom ik zo ver:
$sqlUitlezen = mysqli_query($connection, "SELECT DISTINCT `ou`.`MSKEYVALUE_OU`, `ou`.`DISPLAYNAME` AS `DN_FROM_OU`, `ou`.`Z_REFERENCE_MX_MANAGER` FROM `ou` INNER JOIN `person` ON `ou`.`Z_REFERENCE_MX_MANAGER`=`person`.`MSKEYVALUE_MEDEWERKER` WHERE Z_ORG_LEVEL=2 ORDER BY `MSKEYVALUE_OU` ASC");
een alias vanuit de tabel OU lukt me.. maar deze sql werkt niet en levert de fout op om dat de DISPLAYNAME ook in tabel PERSON voorkomt. Leek eenvoudig (en zal het ook wel zijn ben ik bang) maar pieker me suf ...
Gewijzigd op 31/01/2019 19:37:44 door - DHU -