Выборка данных по одной таблице

NaN

Новичок
Выборка данных по одной таблице

столкнулся с SQL запросом не могу придумать правильного решения, направьте пожалуйста
есть таблица:
Код:
CREATE TABLE `table` (
  `id` int(11) NOT NULL auto_increment,
  `product` int(11) NOT NULL default '0',
  `language` char(3) NOT NULL default '',
  `content` text NOT NULL,
  PRIMARY KEY  (`id`),
  KEY `product` (`product`),
  KEY `language` (`language`)
) ENGINE=MyISAM;
данные:
Код:
INSERT INTO `table` VALUES (1, 458, 'ENG', 'text.....');
INSERT INTO `table` VALUES (2, 458, 'RUS', 'text.....');
INSERT INTO `table` VALUES (3, 300, 'ENG', 'text.....');
задача:
вывести записи `language` = 'ENG' у которых нет русского перевода, с привязкой по полю `product`
 

NaN

Новичок
вот простое объединение, которое выводит данные если есть RUS перевод у продукта:
Код:
SELECT t1.id, t1.language, t1.product, t2.id, t2.language, t2.product
FROM `table` AS t1, `products_table` AS t2
WHERE t1.language = 'ENG'
AND t2.language = 'RUS'
AND t1.product = t2.product
а вот как сделать так, что бы вывело те записи у которых нет перевода, в этом и трудность
 

Gas

может по одной?
мысли правильные, но нужен left join и проверка на t2.language is null
 

NaN

Новичок
пробовал и так и сяк, но к сожалению не получается :(
но чувствую, что IS NULL верное направление
Код:
SELECT t1.id, t1.language, t1.product, t2.id, t2.language, t2.product
FROM `table` As t1
LEFT JOIN `table` As t2 ON t1.product=t2.product
WHERE t1.language = 'ENG' AND t2.language='RUS' IS NULL
 

Gas

может по одной?
уже почти, добавь t2.language='RUS' в условие объединения вместо where, а в where оставь проверку на t2.language is null
 

NaN

Новичок
Спасибо большое, работает!!!
Код:
SELECT t1.id, t1.language, t1.product, t2.id, t2.language, t2.product
FROM `table` AS t1
LEFT JOIN `table` AS t2 ON t1.product = t2.product
AND t2.language = 'RUS'
WHERE t1.language = 'ENG' AND t2.language IS NULL
 
Сверху