[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как делать запрос к нескольким таблицам?
volnet35
Не могу никак понять принцип построения запроса. Нужно вывести данные из таблицы "фирмы", также есть таблицы "город","Страна","Область".
Вот как правильно сделать запрос?
Делаю запрос на вывод из таблицы "фирмы" запрос из таблицы заношу в переменнуюю И пока там есть данные (while) делается fetcharray, т.е .заношу первые данные в переменную и вывожу... и все поля могу вывести, а вот из других таблиц не могу, т.к. не знаю куда впихнуть smile.gif
Подскажите, как каталоги работают, может есть простой скрипт для примера?



Спустя 33 минуты, 14 секунд (16.01.2009 - 11:22) sergeiss написал(а):
Вопрос я лично не совсем понял...
Можно чуть подробнее? И чего в итоге хочешь получить.

Спустя 1 час, 29 секунд (16.01.2009 - 12:23) FatCat написал(а):
Цитата (volnet35 @ 16.01.2009 - 10:49)
Нужно вывести данные из таблицы "фирмы", также есть таблицы "город","Страна","Область".

Как данные в таблицах связаны между собой?

Спустя 5 часов, 58 минут, 37 секунд (16.01.2009 - 18:21) volnet35 написал(а):
Цитата (FatCat @ 16.01.2009 - 12:23)
Цитата (volnet35 @ 16.01.2009 - 10:49)
Нужно вывести данные из таблицы "фирмы", также есть таблицы "город","Страна","Область".

Как данные в таблицах связаны между собой?

в таблице "фирмы" есть "cityid" и "countryid", это id таблиц страна и город

Спустя 1 час, 37 минут, 37 секунд (16.01.2009 - 19:59) FatCat написал(а):
SQL
SELECT f.*, g.*
FROM фирмы f
LEFT JOIN город g ON (g.id=f.cityid)

Спустя 42 минуты, 49 секунд (16.01.2009 - 20:42) volnet35 написал(а):
Цитата (FatCat @ 16.01.2009 - 19:59)
SQL
SELECT f.*, g.*
FROM фирмы f
LEFT JOIN город g ON (g.id=f.cityid)

А можете расшифровать этот синтаксис? Что каждое слово значит? И можно ли делать запрос из трех таблиц (фирмы, страна, область и еще что-нибудь)?
Я как то читал такой код, но так и не смог понять.

Спустя 21 минута, 44 секунды (16.01.2009 - 21:03) Sylex написал(а):

Спустя 9 минут (16.01.2009 - 21:12) FatCat написал(а):
Цитата (volnet35 @ 16.01.2009 - 20:42)
можете расшифровать этот синтаксис?

SELECT - выбрать
* - все поля
f.* - все поля таблицы, которая дальше будет обозначена как f
g.* - все поля таблицы, которая дальше будет обозначена как g
FROM фирмы f - из таблицы "фирмы", и обозначить ее как f
[конечно же имя таблицы латиницей, а не русскими]
LEFT JOIN - и объединить с полями таблицы
город g - таблицы "город" [латиницу!!!] и обозначить как g
ON() - при соблюдении условия
g.id=f.cityid - значение поля id таблицы обозначенной как g равно значению поля cityid таблицы обозначенной как f.

Спустя 6 дней, 13 часов, 34 минуты, 16 секунд (23.01.2009 - 10:47) volnet35 написал(а):
Но никак не могу понять, как сделать привязку данных из одной базы к другой, т.е. у меня выводит сейчас список фирм и у каждой фирмы выводит и страну и область и город, но выводит их не те которые должны быть, а просто по порядку. У первой фирмы выводит страну с id=1, у второй - с id=2 и т.д., а у них пока стоит id=1. Такая же ерунда с городами и облостями. нет связи фирм с данными из базы страны, города

PHP
# SQL 
$inq $db->query("SELECT * FROM ".$basepref."_firma "); 
# > 0 
// выполняем запросы на извлечение страны, области, города из баз 
$inqoblast $db->query("SELECT oblastid,oblastname FROM ".$basepref."_firma_oblast"); 
$inqcity $db->query("SELECT cityid,cityname FROM ".$basepref."_firma_city"); 
$inqcountry $db->query("SELECT * FROM ".$basepref."_firma_country"); 
# Вывод новостей 
while($firma $db->fetchrow($inq)){ 

//заносим в массив первую запись из таблиц в виде переменной $resultcountry 
$resultcountry $db->fetchrow($inqcountry); 
        
$resultcity $db->fetchrow($inqcity); 
$resultoblast $db->fetchrow($inqoblast); 

//заносим в переменные данные 

$cpu = ($siteglobal['seourl']==&& $firma['cpu']) ? "&cpu=".$firma['cpu'] : ""
//Присвоить переменной $cpu следующее значение: если URL = 1 и есть значение cpu в таблице firma, то присвоить переменной $cpu значение cpu из таблицы firma, иначе ничего не присваивать 
$title "<a href=\"index.php?dn=".WORKMOD."&amp;to=art&amp;id=".$firma['id']."".$cpu."\">".$api->siteuni($firma['title'])."</a>"
//В переменную $title занести ссылку с текстом из таблицы firma поля title  

$oblast "<a href=\"index.php?dn=".WORKMOD."&amp;to=art&amp;id=".$resultoblast['oblastid']."".$cpu."\">".$api->siteuni($resultoblast['oblastname'])."</a>"

$country $resultcountry['countryname']; 
//В переменную $country занести ссылку с текстом из таблицы firma поля title  



$city "<a class=\"cat\" href=\"index.php?dn=".WORKMOD."&amp;to=city&id=".$resultcity['cityid']."".$citycpu."\">".$resultcity['cityname']."</a>"

//В переменную $country занести ссылку с текстом из таблицы firma поля title  
$logo = ($firma['logo']) ? "<div class=\"thumb\" style=\"margin:5px; float:".$firma['logo'].";\"><img src=\"".$firma['logo']."\" border=\"0\" alt=\"".$firma['logo']."\"></div>" ""


$tm->parseprint(array('logo'=>$logo
                      
'city'=>$city
                      
'oblast'=>$oblast,                       
                      
'countryid'=>$countryin['countryid'],                                             
                      
'id'=>$firma['firmaid'], 
                      
'country'=>$country,                       
                      
'title'=>$title
                      
'count'=>$count 
                      
),$firmacontainer);
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.