[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Выборка из 2-х таблиц
alex_2017
Здравствуйте. Есть 2 таблицы. В одной содержится контент, в другой комментари к нему.
Структура comments img
Структура data img

SELECT data.*, COUNT(comments.post) AS count
FROM data LEFT JOIN comments ON comments.post = data.id
WHERE data.YEAR(date) = '$this->year'
AND data.MONTHNAME(date) = '$this->month'
GROUP BY data.id ORDER BY data.date DESC

Смысл в том, что из таблицы data я выбираю нужные мне date и подчитываю количество полей comments.post соответсвующих id выбранных полей из date.
Запрос выше не работает, но отражает суть того, чего я хочу добиться.
Помогите, пожалуйста, составить запрос.
База данных - MySql



Спустя 3 часа, 30 секунд (15.09.2010 - 21:35) SlavaFr написал(а):
покажи мне
1)show create table `data`;

2)show create table `comments`

3) реальное содержимое $this->year u $this->month

Спустя 9 часов, 23 минуты, 18 секунд (16.09.2010 - 06:58) alex_2017 написал(а):
CREATE TABLE `data` (
`id` int(5) NOT NULL auto_increment,
`alias` varchar(255) NOT NULL,
`meta_d` varchar(255) NOT NULL,
`meta_k` varchar(255) NOT NULL,
`description` text NOT NULL,
`text` text NOT NULL,
`view` int(7) NOT NULL,
`author` varchar(100) NOT NULL,
`date` date NOT NULL,
`mini_img` varchar(255) NOT NULL,
`alt_img` varchar(255) NOT NULL,
`title` varchar(255) NOT NULL,
PRIMARY KEY (`id`)) ENGINE=MyISAM AUTO_INCREMENT=10 DEFAULT CHARSET=cp1251


CREATE TABLE `comments` (  
`id` int(5) NOT NULL auto_increment,
`post` int(5) NOT NULL,
`author` varchar(100) NOT NULL,
`text` text NOT NULL,
`date` datetime default NULL,
`mail` varchar(255) NOT NULL,
PRIMARY KEY (`id`)) ENGINE=MyISAM AUTO_INCREMENT=41 DEFAULT CHARSET=cp1251


$this->year = 2010
$this->month = March

Спустя 4 часа, 22 минуты, 27 секунд (16.09.2010 - 11:20) SlavaFr написал(а):

$Sql="SELECT `data`.*,
(SELECT COUNT(*) FROM comments where comments.post = `data`.id) AS cnt
FROM `data`
WHERE YEAR(`data`.`date`) = {
$this->year}
AND MONTHNAME(`data`.`date`) = '{
$this->month}'
ORDER BY `data`.`date` DESC"
;

Спустя 3 часа, 54 минуты, 11 секунд (16.09.2010 - 15:15) alex_2017 написал(а):
Спасибо за помощь, но дело в том, что у меня запрос обрабатывается в классе. Начинаться обязательно должно с SELECT data.*, COUNT(comments.post). Я давно еще сам осилил JOIN'ы, но прошло много времени, и никак не могу написать запрос сам. unsure.gif

Спустя 4 часа, 35 минут, 2 секунды (16.09.2010 - 19:50) SlavaFr написал(а):
так а мое AS cnt на AS `count` заменить?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.