сложный запрос

  • Автор темы alex234
  • Дата начала

alex234

Guest
сложный запрос

есть две таблицы (mysql). в одной id автоинкремент, в другой тоже есть id, но он не автоинкримент.

надо выбрать из первой таблицы по определенным условиям, и отсортировать по определенным условиям второй таблицы (где таимштэмп больше) (где ид из первой совпадает с идом второй)
 

tony2001

TeaM PHPClub
[sql]SELECT .. FROM table1 t1, table2 t2 WHERE t1.id = t2.id AND ...[/SQL]

либо, если надо не только, где id совпадают, а вообще все

[SQL]SELECT .. FROM table1 t1 LEFT JOIN table2 t2 ON t1.id = t2.id WHERE ...[/SQL]
 

Demiurg

Guest
select * from t1,t2 where t1.id = t2.id and ... order by t2.timestamp
[sql]
select * from t1,t2 where t1.id = t2.id and ... order by t2.timestamp
[/sql]
 

alex234

Guest
чуть чуть ошибся с задачей, но не принципиально.

select * from forum_tree, DISTINCT pid from forum_messages where (forum_tree.id = forum_messages.pid) and (forum_tree.pid='$forum_id') order by forum_messages.timestamp

почуму-то не работает
 

alex234

Guest
надо выбрать из tree и отсоритровать по наиболее позднему messages, где tree.id == messge.pid
 

tony2001

TeaM PHPClub
[sql]
select ft.*,MAX(fm.message_date) as latest_date from forum_tree ft, forum_messages fm where forum_tree.id = forum_messages.pid and forum_tree.pid='$forum_id' GROUP BY ft.id order by latest_date
[/sql]
 

alex234

Guest
понял. тока я опять протормозил (люди, простите меня пожалуйста=).
у меня в tree_messages нету pid'ов, но есть id, которые в свою очередь соответствуют другим (не тем которые надо выбрать)записям в forum_tree. наверное не внятно.

попробую объяснить на русском: есть tree_forum (id, pid + всякая лабуда), в нем древовидная структура.
есть forum_messges (id(совпадает с соответствующим элементом в tree), timestamp, всякая лабуда), в нем сообщения.

простой запрос к forum_tree: select * from forum_tree where pid='$forum_id' order by timestamp DESC LIMIT $limit_from, $messages_per_page;
(выбираем элементы "отцы", сортировать надо по сыновьям)

надо "доукомплектовать" его сортировкой по времени добавления сына.

(сыны (их содержание), - это как раз messages), текст самих отцов в другой таблице(вопроса не касается)
 
Сверху