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

Форум MySQL

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Можно ли выбрать из одной таблицы все записи а из другой по одной записи, связанной с записями из первой?

Сообщения:  [1-10]   [11-15] 

 
 автор: kosta_in_net   (12.01.2010 в 02:50)   письмо автору
 
   для: .heed   (10.01.2010 в 14:12)
 

мне нравится твое чувство юмора ;)
Но вот, ответь мне, почему ты не подсказал что-то типа такого:
SELECT * FROM `table1` 
LEFT JOIN `table2` ON table1.id = table2.id 
GROUP BY table1.id
LIMIT 0 , 20;

?

  Ответить  
 
 автор: .heed   (10.01.2010 в 14:12)
 
   для: kosta_in_net   (09.01.2010 в 00:05)
 

если делать так чтобы сильно грузило сервер ,) то вот-так например можно придумать
CREATE TABLE `par` (
  `id` TINYINT AUTO_INCREMENT,
  `titl` TINYTEXT,
PRIMARY KEY (id)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;

CREATE TABLE `chil` (
  `id` SMALLINT AUTO_INCREMENT,
  `par_id` TINYINT,
  `txt` TINYTEXT,
PRIMARY KEY (id)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;

INSERT INTO par VALUES
(NULL, "раз"),
(NULL, "два"),
(NULL, "три"),
(NULL, "четыре");

INSERT INTO chil VALUES
(NULL, 1, "1_раз"),
(NULL, 1, "2_раз"),
(NULL, 2, "1_два"),
(NULL, 2, "2_два"),
(NULL, 2, "3_два"),
(NULL, 2, "4_два"),
(NULL, 3, "1_три"),
(NULL, 5, "1_пять"),
(NULL, 5, "2_пять"),
(NULL, 1, "3_раз");

SELECT a.id, a.titl, b.txt
  FROM chil b LEFT JOIN par a
  ON  a.id = b.par_id
WHERE  a.id
GROUP BY a.id, b.id
HAVING
IFNULL(@x, @x := a.id) AND IFNULL(@z, @z := 1) AND
IF(@x = a.id
 , ((@z := (1+@z)) AND @z < 4)
 , ((@x := a.id) AND  @z := 1));

DROP TABLE par;
DROP TABLE chil;

можно ещё хранимые процедуры или VIEW'ы делать

  Ответить  
 
 автор: Trianon   (09.01.2010 в 11:13)   письмо автору
 
   для: kosta_in_net   (09.01.2010 в 02:57)
 

heed (08.01.2010 в 02:02) оказался прав абсолютно.

  Ответить  
 
 автор: kosta_in_net   (09.01.2010 в 02:57)   письмо автору
 
   для: Trianon   (09.01.2010 в 02:37)
 

чё-то я залудил. Имел в виду по 3 записи для каждой записи из таблицы 1

  Ответить  
 
 автор: Trianon   (09.01.2010 в 02:37)   письмо автору
 
   для: kosta_in_net   (09.01.2010 в 00:05)
 

не понял, что означает "выбрать по полю (по три поля)"

Но наверное возможно. Если аккуратно.

  Ответить  
 
 автор: kosta_in_net   (09.01.2010 в 00:05)   письмо автору
 
   для: Trianon   (08.01.2010 в 15:46)
 

а если усложнить задачу? Если нужно не по одному полю выбрать, а по три (к примеру). Такое возможно?

  Ответить  
 
 автор: kosta_in_net   (09.01.2010 в 00:02)   письмо автору
 
   для: Diplex   (08.01.2010 в 23:09)
 

не спеши с выводами.

  Ответить  
 
 автор: ~AquaZ~   (08.01.2010 в 23:29)   письмо автору
 
   для: Diplex   (08.01.2010 в 23:09)
 

Он не ноет, а извиняется за то, что может чт0-то неправильно понять.

  Ответить  
 
 автор: Diplex   (08.01.2010 в 23:09)   письмо автору
 
   для: kosta_in_net   (08.01.2010 в 11:00)
 

> прошу понять меня правильно, но по некоторым причинам сейчас я не могу нормально сосредоточится, я даже нормально выспаться не могу

и здесь нытики... как Вас много стало... всегда у Вас вечные проблемы, и всё через одно место...

  Ответить  
 
 автор: Trianon   (08.01.2010 в 15:46)   письмо автору
 
   для: kosta_in_net   (08.01.2010 в 11:00)
 

там оба варианта - один с группировкой, другой - без.
Выспаться следует в первую очередь.
Изучать SQL на уставшую голову смысла нет никакого.

  Ответить  

Сообщения:  [1-10]   [11-15] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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