|
|
|
| Вот нашёл кусок кода(запароса):
"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
|
Как это делается? Я чего то не могу понять, как одним запросом взять инфу из нескольких таблиц. Если не трудно напишите как это делается, с поянением(так как не люблю писать код, незная что он делает и как) | |
|
|
|
|
|
|
|
для: 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 или их произведению. Таким образом каждое поле явно указывается какой таблице оно принадлежит. | |
|
|
|
|
|
|
|
для: cheops
(17.03.2005 в 00:40)
| | Отлично cheops, большое спасибо!!! | |
|
|
|
|
|
|
|
для: cheops
(17.03.2005 в 00:40)
| | А вот как потом из этого запроса взять информацию? Если есть несколько способов, то укажите пожалуйста несколько, спасибо | |
|
|
|
|
|
|
|
для: 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 подставить любое поле из запроса
?>
|
| |
|
|
|
|
|
|
|
для: Axxil
(17.03.2005 в 16:29)
| | Ок спасибо | |
|
|
|