|
|
|
| Есть таблица с группами:
CREATE TABLE mywellru.articles_groups(
id_group INT(11) NOT NULL AUTO_INCREMENT COMMENT 'Первичный ключ',
name TINYTEXT NOT NULL,
PRIMARY KEY (id_group)
)
ENGINE = MYISAM;
|
и со статьями:
CREATE TABLE mywellru.articles(
id_article INT(11) NOT NULL AUTO_INCREMENT,
id_group INT(11) UNSIGNED NOT NULL COMMENT 'Группа статьи',
title TINYTEXT NOT NULL COMMENT 'Заголовок статьи',
body TEXT NOT NULL COMMENT 'Тело статьи',
PRIMARY KEY (id_article)
)
ENGINE = MYISAM;
|
Груп можнт быть штук 100 не более, а статей неограниченно. И иногда будут группы, в которых статей нет (временно). И нужно извлечь только те группы, в которых есть татьи.
Сначала дмал сделать так:
SELECT
articles.id_article,
articles_groups.id_group,
articles_groups.name
FROM articles_groups
LEFR JOIN articles USING(id_group)
WHERE articles.id_article IS NOT NULL
|
Но, думаю (могу ошибаться) вроде как не разумно прицеплять "сбоку" таблицу с большим кол-вом записей. Или нормально? | |
|
|
|
|
|
|
|
для: tAleks
(31.10.2011 в 17:02)
| | LEFT уберите, если нужны только те группы, в которых имеются статьи. Ключевое слово LEFT как раз требует, чтобы из левой таблицы выводились все записи, независимо от того, есть связь с правой таблицей или нет. | |
|
|
|