Допустим, у меня есть 2 таблицы, одна называется категориями, а другая - cat_pages.
Таблица категорий содержит идентификатор столбца, заголовок и метку времени.Например:
CREATE TABLE categories (
id INT UNSIGNED PRIMARY KEY,
title VARCHAR(32),
`timestamp` TIMESTAMP,
INDEX (title)
) Engine=InnoDB;
У cat_pages есть 2 столбца, cat_id и page_id:
CREATE TABLE cat_pages (
cat_id INT UNSIGNED
REFERENCES categories (id)
ON DELETE CASCADE ON UPDATE CASCADE,
page_id INT UNSIGNED
REFERENCES pages (id)
ON DELETE CASCADE ON UPDATE CASCADE,
UNIQUE INDEX (cat_id, page_id),
INDEX (page_id, cat_id),
) Engine=InnoDB;
Я пытаюсь объединить таблицу категорий с таблицей cat_pages по идентификатору, так что
- Извлекаются только категории с идентификаторами в таблице category_pages и
- Каждая категория отображается только один раз в наборе результатов
Запрос:
SELECT * FROM categories as c
LEFT JOIN cat_pages as p ON c.id = p.cat_id
создает набор результатов, в котором категории повторяются несколько раз (так как в таблице cat_pages есть несколько совпадений. Что мне нужно, чтобы каждая категория отображалась только один раз, а не вообще, если совпадений нетв таблице cat_pages?