說我有2個表,一個叫做類別,一個叫做cat_pages。MYSQL加入唯一的結果行
類別表具有列ID,標題和時間戳。例如:
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;
我想加盟與該ID的cat_pages表分類表,這樣
- 僅檢索category_pages表中具有id的類別
- 每個類別僅在結果集中顯示一次
查詢:
SELECT * FROM categories as c
LEFT JOIN cat_pages as p ON c.id = p.cat_id
產生具有類別重複多次(因爲有在cat_pages表多個匹配的結果集。我需要什麼才能讓每個類別只顯示一次,而如果cat_pages表格中沒有匹配,則根本不顯示?
從你的查詢中左鍵落地實現第一點 – Dalen 2011-04-19 08:05:39
代碼爲王。描述表的最好方法是給出表創建語句,以及樣本數據的'INSERT'語句。你提供的'SELECT'查詢在描述你想要的內容時非常有幫助。 – outis 2011-04-19 08:20:22