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

Форум MySQL

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

 

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

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

тема: Помогите с двухтабличным запросом
 
 автор: holst   (01.12.2008 в 15:54)   письмо автору
 
 

В принципе должно решаться но никак не могу понять как.
2 таблицы:
1)
journal_id (primary)
category_id
journal_name


2)

status_id (primary)
journal_id
status
add_date


Во второй таблице статус для записи "журнала". Связь один-ко-многим.
У каждого статуса есть время добавления.
Надо вывести список записей журнала, такой, где у каждой записи выводился бы еще и текущий статус, определяемый по наибольшей дате для статусов этой записи...

Например, у первой записи журнала есть 2 статуса - введена, закрыта(дата больше введения).
В результат с остальными данными строки "журнала" пойдет второй статус и его дата.

p.s. Надеюсь не слишком путанно

  Ответить  
 
 автор: Trianon   (01.12.2008 в 18:18)   письмо автору
 
   для: holst   (01.12.2008 в 15:54)
 

SELECT j.*, status
FROM j LEFT JOIN ( 
  SELECT  s.journal_id AS jid, MAX(add_date) AS ad 
  FROM  status 
  GROUP BY jid
  ) AS ls
ON j.journal_id = ls.jid
LEFT JOIN s ON ad = s.add_date

так или примерно так.

Если первичный ключ лишь возрастает, лучше бы ориентироваться по нему.

  Ответить  
 
 автор: holst   (05.12.2008 в 10:00)   письмо автору
 
   для: Trianon   (01.12.2008 в 18:18)
 

первичный в смысле таблицы status?
он auto_increment, конечно, но чтоб базу не засорять историей изменения статусов, то на каждую запись журнала в status хранится максимум только 5 полей с возможными статусами и датами их проставления. Так что придется только по дате и смотреть текущий статус записи.


А так Большое Спасибо :)
Все никак осилить сам не могу JOIN и иже с ним.

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

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