выборка из 3 таблиц, с пустыми полями тоже показать

Like

Новичок
выборка из 3 таблиц, с пустыми полями тоже показать

Допустим есть три таблицы: tov_main users_main tov_photos
Вывожу в админке постранично ($strt,$pp) одним списком товары, тип ($type) которого соответствует своему типу (0 – нет на складе, 1 - есть) и покупателю (uid), а у каждого товара есть несколько картинок (pic_id) показываю одну первую.
PHP:
$r=mysql_query("SELECT tov_main.*, users_main.*, tov_photos.* 
FROM tov_main, users_main, tov_photos 
WHERE tov_main.type=$type 
AND users_main.uid=tov_main.idwho
AND tov_main.tov_id=tov_photos.pic_id 
GROUP BY 1 DESC 
ORDER BY tov_id DESC 
LIMIT $start,$pp");
while ($R=mysql_fetch_array($r)) {
print "скип";
print "Товар".$R["tov_id"]." Юзер ".$R["uid"]." Фото ".$R["photos"]."";
print "скип";
}
Делаю такой запрос, но вижу только те строки, где есть хотябы одна картинка. А нужно если нет картинки все равно вывести эти строки с картинкой nopic.jpg Помогите составить грамотно запрос, или несколько запросов.
Спасбио.
 

Like

Новичок
Я извиняюсь, вверху ошибся, а внизу правильно написал. Не у каждого товара есть картинка, в том-то и дело, что в третьей таблице не везде есть строки. Еслиб они были, то проблем бы не было,
PHP:
$photoss = $r["photos"];
if (empty($r["photos"])) {
$photoss="nopic.jpg";
}
ну не создавать же их вместе со всеми? Щас я так и делаю, но хочется чтоб красиво было.
 

Фанат

oncle terrible
Команда форума
что ты там написал - никого не интересует. пхп код в твоем вопросе вообще лишний. с чем тебе надо работать - это SQL запрос. что с ним делать - тебе тоже написали. приступай.
 

Like

Новичок
В нете я где-то вычитал, что не работает это дело ниже MySQL 4.1.Х - я не прав?
 

HraKK

Мудак
Команда форума
Like
Не прав. А заместо того чтобы спрашивать взял бы и проверил.
 

Like

Новичок
Да, на офсайте говорят, что должно работать. Я и проверил:
PHP:
$r=mysql_query("SELECT tov_main.*, users_main.*, tov_photos.*  
FROM tov_main, users_main, tov_photos  
LEFT OUTER JOIN tov_photos ON tov_photos.pic_id = tov_main.tov_id
WHERE tov_main.type=$type  
AND users_main.uid=tov_main.idwho 
GROUP BY 1 DESC  
ORDER BY tov_id DESC  
LIMIT $start,$pp"); 
while ($R=mysql_fetch_array($r)) { 
print "скип"; 
print "Товар".$R["tov_id"]." Юзер ".$R["uid"]." Фото ".$R["photos"].""; 
print "скип"; 
}
Not unique table/alias: 'tov_photos'
Наверное я не прав в синтаксисе, я и не спорю
 

Like

Новичок
Ура, заработало!
Ну как же, я же убирал, почему-то неработало...
Спасибо огромное.
...нашел почему не работало, в моей третьей строчке я tov_main писал:)
 
Сверху