twee tabellen met gelijke veldnaam

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Dirk Huizinga

Dirk Huizinga

30/01/2019 23:37:04
Quote Anchor link
Hoi allemaal,

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
 
PHP hulp

PHP hulp

25/04/2019 10:59:18
Honeypot
 
Thomas van den Heuvel

Thomas van den Heuvel

31/01/2019 00:07:11
Quote Anchor link
Euh? Je haalt * op, maar gebruikt enkel DISPLAYNAME?

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.
 
Dirk Huizinga

Dirk Huizinga

31/01/2019 05:15:43
Quote Anchor link
Hoi Guys,

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 Dirk Huizinga
 



Overzicht Reageren

 
 

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.