INNER JOIN ... ON ...

kitchenbg

Registered
Здравейте, искам да попитам дали може да се join-ват повече от една таблица и как става номера? :? примерно искам да търся едновременно в три таблици!
 
То по принцип може да се търси и в 15 таблици едновременно
но те трябва да са свързани.
Да са свързани помежду си.
Имат ли общи полета?

Примерно:

1 таблица:
user_id, user_name, user_mail- таблица за усерите
recepta_id, user_id, recepta_text,vid_recepta_id- всички рецепти
vid_recepta_id, opisanie- вид рецепта(десерти, супи и т.н.)

ТОва са примерно таблиците.
В едната са описани всички усери, в другата са всички публикувани рецепри и инфо за тях (кой ги е публикувал и тяхното съдържание)
А в третата е информация за видовете рецепти.

И трите имат общи полета, чрез които да ги свържеш в една.
Твоите таблици какво представляват ?
КАкви са им полетата и за какво се отнасят?
 
табица user -> user_id, user_name, user_mail
табица recepri -> recepta_id, user_id, recepta_zaglavie,recepta_text,vid_recepta_id
табица vidoverecepti -> vid_recepta_id, opisanie



<?
$query="SELECT* FROM user, recepri,vidoverecepti WHERE
user.user_id=recepri.user_id and
vidoverecepti.vid_recepta_id=recepri.vid_recepta_id";

$result=mysql_query($query);
$num=mysql_num_rows($result);

for ($i=0;$i>$num-1; $i++)
{
$user_list=mysql_result($result,$i,"user.user_name");
$zaglavie_list=mysql_result($result,$i,"recepri.recepta_zaglavie");
$opisanie_list=mysql_result($result,$i,"vidoverecepti.opisanie");


echo '<tr><td>'.$user_list.'</td><td>'.$zaglavie_list.'</td><td>'.$opisanie_list.'</td></tr>';
}

echo"</table>";
?>


Ще ти листне всички потребители, които са написали някаква тецепта така:
потребител-заглавие на рецептата-вид на рецептата
 
Ако искаш да ти даде само потребителия "nvidia" какви рецепри е написал ще трябва да е така:


<?
$query="SELECT* FROM user, recepri,vidoverecepti WHERE
user.user_id=recepri.user_id and
vidoverecepti.vid_recepta_id=recepri.vid_recepta_id and user.user_name='nvidia' ";

$result=mysql_query($query);
$num=mysql_num_rows($result);

for ($i=0;$i>$num-1; $i++)
{
$user_list=mysql_result($result,$i,"user.user_name");
$zaglavie_list=mysql_result($result,$i,"recepri.recepta_zaglavie");
$opisanie_list=mysql_result($result,$i,"vidoverecepti.opisanie");


echo '<tr><td>'.$user_list.'</td><td>'.$zaglavie_list.'</td><td>'.$opisanie_list.'</td></tr>';
}

echo"</table>";
?>
 

Горе