bestaat er een truc om te selecteren uit verschillende tabellen

ik heb een tabel
MENU met id, name en ranking
MENU_LANGUAGE met id, menu_id, languag_id en name
LANGUAGE met id, language_2 en language_long

nu wil via 1 sql MENU.name, MENU_LANGUAGE.name en LANGUAGE.language_long

is dit mogelijk?? en zo ja hoe doe ik het??

indien niet?? iemand een idee hoe ik het dan wel oplos??
Je kunt dit doen:

SELECT m.name, ml.name
FROM MENU as m, MENU_LANGUAGE as ml
WHERE m.id = ml.menu_id

Een relatie tussen MENU en LANGUAGE kan ik niet ontdekken, dus daar moet je aan je datamodel sleutelen.
LANGUAGE is verbonden met MENU_LANGUAGE en deze met MENU

Maakt het het extra moeilijk als LANGUAGE niet rechtstreeks verbonden is met MENU???

wat stel je voor om het te veranderen??

alvast bedankt
Dan zo:

SELECT m.name, ml.name, l.language_long
FROM MENU as m, MENU_LANGUAGE as ml
WHERE m.id = ml.menu_id
AND ml.language_id = l.id

p.s. in je eerste post staat languag_id in plaats van language_id
ik heb nu zoiets geprobeert:

$query = "SELECT m.name, ml.name, l.language_long
FROM MENU as m, MENU_LANGUAGE as ml, LANGUAGE as l
WHERE m.id = ml.menu_id
AND ml.language_id = l.id
";

en ik krijg er geen foutmeldingen op, dus op zich is dat al goed.

Mijn vraag is nu hoe kan ik dit uitlezen want op de normale manier lukt dit niet echt. Ik zie duidelijk dat er 2 rijen zijn(wat klopt), maar hij vult niks in.

ik krijg wel volgende errors:

Notice: Undefined index: ml.id in C:\Site\new_site_v2\admin\add_menu\menu_list.php on line 48

Notice: Undefined index: ml.name in C:\Site\new_site_v2\admin\add_menu\menu_list.php on line 49

Notice: Undefined index: m.name in C:\Site\new_site_v2\admin\add_menu\menu_list.php on line 53

Notice: Undefined index: l.language_long in C:\Site\new_site_v2\admin\add_menu\menu_list.php on line 54

Notice: Undefined index: ml.name in C:\Site\new_site_v2\admin\add_menu\menu_list.php on line 55

Notice: Undefined index: ml.id in C:\Site\new_site_v2\admin\add_menu\menu_list.php on line 48

Notice: Undefined index: ml.name in C:\Site\new_site_v2\admin\add_menu\menu_list.php on line 49

Notice: Undefined index: m.name in C:\Site\new_site_v2\admin\add_menu\menu_list.php on line 53

Notice: Undefined index: l.language_long in C:\Site\new_site_v2\admin\add_menu\menu_list.php on line 54

Notice: Undefined index: ml.name in C:\Site\new_site_v2\admin\add_menu\menu_list.php on line 55
Ik zou in de query wat aliassen aanmaken voor de kolomnamen. Zoiets:
<?php
$sql = "
SELECT
m.name AS menu_name,
ml.name AS menu_language_name,
l.language_long AS language_long
FROM
MENU as m,
MENU_LANGUAGE as ml
WHERE
m.id = ml.menu_id
AND
ml.language_id = l.id
";
if (!$res = mysql_query ($sql)) {
trigger_error (mysql_error ());
}
else {
while ($row = mysql_fetch_assoc ($res)) {
echo '<p>' . $row['menu_name'] . '</p>';
echo '<p>' . $row['menu_language_name'] . '</p>';
echo '<p>' . $row['language_long'] . '</p>';
}
}
?>
bedankt

ik had juist ook de kolomnamen met wat aliassen aangepast en nu werkt het.

bedankt voor de hulp

Reageren