Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Сложные запросы
 
 автор: JIEXA   (16.03.2005 в 22:53)   письмо автору
 
 

Вот нашёл кусок кода(запароса):

                "SELECT tn.*, user_id, user_name FROM ".$PREFIX."news tn
                LEFT JOIN ".$PREFIX."users tu ON tn.news_name=tu.user_id
                WHERE news_id='$id


Как это делается? Я чего то не могу понять, как одним запросом взять инфу из нескольких таблиц. Если не трудно напишите как это делается, с поянением(так как не люблю писать код, незная что он делает и как)

   
 
 автор: cheops   (17.03.2005 в 00:40)   письмо автору
 
   для: JIEXA   (16.03.2005 в 22:53)
 

Этот код осложнён конструкцией LEFT JOIN, вообще можно осуществить запрос из нескольких таблиц, но поля таблиц должны предваряться их названиями. Пусть имеется две таблицы talble1 и talbe2. В первой таблице пусть будет поле id (в запросе обозначается как table1.id), а во второй sid (в запросе обозначается как table2.sid). Тогда многотабличный запрос может выглядеть следующим обарзом
SELECT table1.id, table2.sid 
FROM table1, table2 
WHERE table1.id = table2.sid 
GROUP BY table1.id 

Выбираем все записи для которыйх id первой таблицы равно sid второй. Запрос обязательно сопровождается конструкцией GROUP BY, чтобы число результатов равнялось числу table1.id, а не talbe2.sid или их произведению. Таким образом каждое поле явно указывается какой таблице оно принадлежит.

   
 
 автор: JIEXA   (17.03.2005 в 14:07)   письмо автору
 
   для: cheops   (17.03.2005 в 00:40)
 

Отлично cheops, большое спасибо!!!

   
 
 автор: JIEXA   (17.03.2005 в 16:11)   письмо автору
 
   для: cheops   (17.03.2005 в 00:40)
 

А вот как потом из этого запроса взять информацию? Если есть несколько способов, то укажите пожалуйста несколько, спасибо

   
 
 автор: Axxil   (17.03.2005 в 16:29)   письмо автору
 
   для: JIEXA   (17.03.2005 в 16:11)
 

В смысле как взять?

<?
// пишем sql запрос
$sql="SELECT table1.id, table2.sid 
FROM table1, table2 
WHERE table1.id = table2.sid 
GROUP BY table1.id "
;
// выполняем sql запрос
$query=mysql_query($sql);
// $query содержит результат запроса
// в цикле выводим построчно результат
while ($r=mysql_fetch_array){
echo 
$r[$field];
}
// вместо $field подставить любое поле из запроса
?>

   
 
 автор: JIEXA   (17.03.2005 в 16:32)   письмо автору
 
   для: Axxil   (17.03.2005 в 16:29)
 

Ок спасибо

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования