Выборка из двух таблиц, помогите составить запрос

kabachok

Новичок
Выборка из двух таблиц, помогите составить запрос

таблица первая
PHP:
CREATE TABLE `sas_cnt` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `id_us` int(10) unsigned NOT NULL default '0',
  `id_us_cnt` int(10) unsigned NOT NULL default '0',
  `id_cnt` int(10) unsigned NOT NULL default '0',
  PRIMARY KEY  (`id`),
  KEY `id_us` (`id_us`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=2 ;

INSERT INTO `sas_cnt` VALUES (1, 1, 2, 2);
`id`номер записи
`id_us` ид пользователя
`id_us_cnt`ид контакта
`id_cnt` номер контакта

таблица вторая
PHP:
CREATE TABLE `sas_msg` (
  `id` int(11) NOT NULL auto_increment,
  `to` int(6) unsigned NOT NULL default '0',
  `from` int(6) unsigned NOT NULL default '0',
  `text` char(255) NOT NULL default '',
  `data` int(11) unsigned NOT NULL default '0',
  `status` tinyint(1) unsigned NOT NULL default '0',
  PRIMARY KEY  (`id`),
  KEY `status` (`status`),
  KEY `to` (`to`),
  KEY `from` (`from`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=2 ;

INSERT INTO `sas_msg` VALUES (1, 1, 2, 'ntcn', 0, 1);
`id`номер записи
`to` номер контака от кого
`from`номер контакта кто
`text`само сообщение
`data` дата сообщения
`status`статус сообщения

запрос который я соорудил но он не работает

PHP:
SELECT sas_cnt. * , sas_users.login, sas_users.nick, sas_sessions.last_data, COUNT( sas_msg. * ) 
FROM sas_cnt
LEFT JOIN sas_users ON sas_cnt.id_us_cnt = sas_users.id
LEFT JOIN sas_sessions ON sas_cnt.id_us_cnt = sas_sessions.id
LEFT JOIN sas_msg ON sas_cnt.id_cnt = sas_msg.to
WHERE sas_cnt.id_us = '1'
GROUP BY sas_msg.to
ORDER BY last_data DESC , login ASC
мне нужно получить чтото типа этого
id id_us id_us_cnt id_cnt login nick last_data COUNT( sas_msg. * )
1 1 2 2 test NULL NULL число сообщений со статусом 1


помогите составить запрос, сам не могу :(


этот вот запрос работает
PHP:
SELECT sas_cnt. * , sas_users.login, sas_users.nick, sas_sessions.last_data
FROM sas_cnt
LEFT JOIN sas_users ON sas_cnt.id_us_cnt = sas_users.id
LEFT JOIN sas_sessions ON sas_cnt.id_us_cnt = sas_sessions.id

WHERE sas_cnt.id_us = '1'
ORDER BY last_data DESC , login ASC
 

UserAleks

Новичок
получаеться что у тебя не работает
...LEFT JOIN sas_msg ON sas_cnt.id_cnt = sas_msg.to...
возможно, что
`id_cnt` int(10) и `to` int(6) - длина ключей разная.
 

kabachok

Новичок
Автор оригинала: UserAleks
получаеться что у тебя не работает
...LEFT JOIN sas_msg ON sas_cnt.id_cnt = sas_msg.to...
возможно, что
`id_cnt` int(10) и `to` int(6) - длина ключей разная.
это может быть причиной? незнал
 

kabachok

Новичок
Автор оригинала: Bitterman
kabachok

Дело, скорее всего в том, о чем тебе написал chira. Хотя ты так и не указал, что именно у тебя не работает.
да я забил на это, сделал как то иначе, щас не помню, лень в скрипт лезть, тема то январьская :)

-~{}~ 30.08.07 15:26:

поднимаю тему.

есть 2 тиблицы

CREATE TABLE `bibl_kat` (
`id` int(11) unsigned NOT NULL auto_increment,
`id_kat` int(11) default '0',
`order` int(11) NOT NULL default '0',
`folders` int(11) unsigned NOT NULL default '0',
`files` int(11) unsigned NOT NULL default '0',
`title_lat` char(100) NOT NULL default '',
`title` char(100) NOT NULL default '',
PRIMARY KEY (`id`),
KEY `id_kat` (`id_kat`)
) ENGINE=MyISAM;

CREATE TABLE `bibl_files` (
`id` int(11) unsigned NOT NULL auto_increment,
`id_kat` int(11) default '0',
`size` int(11) default '0',
`count` int(11) default '0',
`data` char(10) NOT NULL default '',
`title_lat` char(255) NOT NULL default '',
`title` char(255) NOT NULL default '',
`file` char(50) NOT NULL default '',
PRIMARY KEY (`id`),
KEY `data` (`data`),
KEY `id_kat` (`id_kat`)
) ENGINE=MyISAM;

`folders` int(11) unsigned NOT NULL default '0',
`files` int(11) unsigned NOT NULL default '0',
это количество категорий и файлов в папке

в первой будут находится разделы библиотеки, во второй файлы.

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

Я чтото немогу придумать запрос :(

-~{}~ 30.08.07 15:31:

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

извините за офтоп
 
Сверху