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

Форум MySQL

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

 

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

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

тема: можно ли сделать одним запросом?
 
 автор: psychomc   (06.06.2009 в 14:53)   письмо автору
 
 

в общем есть таблицы:

альбомы
CREATE TABLE `albums` (
  `id_album` int(4) NOT NULL auto_increment,
  `name` tinytext NOT NULL,
  `cr_time` datetime NOT NULL default '0000-00-00 00:00:00',
  `upd_time` datetime NOT NULL default '0000-00-00 00:00:00',
  `show` enum('yes','no') NOT NULL default 'yes',
  `id_user` int(10) NOT NULL,     
  PRIMARY KEY  (`id_album`),                    
  KEY `id_user` (`id_user`)             
) TYPE=MyISAM;


фотографии
CREATE TABLE `photos` (
  `id_photo` int(4) NOT NULL auto_increment,
  `name` tinytext NOT NULL,
  `photo` varchar(50) NOT NULL default '',
  `photo_s` varchar(50) NOT NULL default '',  
 `id_album` int(4) NOT NULL,
 `id_user` int(10) NOT NULL,    
  PRIMARY KEY  (`id_photo`),                    
  KEY `id_album` (`id_album`), 
  KEY `id_user` (`id_user`)            
) TYPE=MyISAM;


нужно извлечь все данные из таблицы альбомов и проверить есть ли у данного альбома хоть одно фото, если есть - вывести случайное из них.

делаю двумя запросами, извлекая каждый альбом делаю новый запрос к таблице фото, если mysql_num_rows вовращает что-то - вывожу.
вопрос собственно в названии темы...
надеюсь вы меня поняли :)

  Ответить  
 
 автор: durable   (08.06.2009 в 09:13)   письмо автору
 
   для: psychomc   (06.06.2009 в 14:53)
 

Недавно обсуждали подобную тему
http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=65458&page=1

  Ответить  
 
 автор: Trianon   (08.06.2009 в 10:43)   письмо автору
 
   для: durable   (08.06.2009 в 09:13)
 

Затыкать GROUP_CONCAT'ом любую проблему, это мягко говоря, не комильфо.
Всё же связанных строк в дочерней таблице может быть изрядно, а для GROUP_CONCAT требуется отдельный буфер (по умолчанию довольно короткий)

Вообще же запросы типа "а дай мне чего-то там случайной россыпью" алгоритмизируются тяжело.

  Ответить  
 
 автор: psychomc   (13.06.2009 в 01:31)   письмо автору
 
   для: Trianon   (08.06.2009 в 10:43)
 

ладно, а если, скажем, 2 связанные таблицы.
чтобы для меня проще, допустим `авторы` и `книги`.
нужно извлечь все данные из таблицы авторов, если у автора есть книги-здесь же вывести их.и все это одним запросом. как это грамотно реализуется?

  Ответить  
 
 автор: Trianon   (13.06.2009 в 11:08)   письмо автору
 
   для: psychomc   (13.06.2009 в 01:31)
 

Вот целая стопка топиков на эту тему.

Некоторые просто один в один:

http://softtime.ru/forum/read.php?id_forum=3&id_theme=14283
http://softtime.ru/forum/read.php?id_forum=3&id_theme=37362
http://softtime.ru/forum/read.php?id_forum=3&id_theme=56337

  Ответить  
 
 автор: psychomc   (13.06.2009 в 12:20)   письмо автору
 
   для: Trianon   (13.06.2009 в 11:08)
 

спасибо

  Ответить  
Rambler's Top100
вверх

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