【发布时间】:2014-06-27 20:51:13
【问题描述】:
此查询返回多个结果。在底部,您可以看到每个 ID 号有两个。如何区分仍然获得 25 条唯一值记录的记录?
SELECT *
FROM(
SELECT
DISTINCT cards.id, cards.name, cards.created_at, cards.updated_at
FROM cards
INNER JOIN card_process
ON card_process.card_id = cards.id
INNER JOIN processes
ON processes.id = card_process.process_id
INNER JOIN category_process
ON category_process.process_id = processes.id
INNER JOIN categories
ON categories.id = category_process.category_id
INNER JOIN series
ON series.id = categories.serie_id
INNER JOIN serie_user
ON serie_user.serie_id = series.id
AND `cards`.`type` NOT IN ('', 'libraries')
AND NOT `cards`.`deleted`
AND NOT `categories`.`deleted`
AND NOT `series`.`deleted`
AND `cards`.`type` IN ('forms')
AND `series`.`id` IN (124,235,126,126,201,236,207,207,207,207,247,234,131,131,221,225,225,222)
UNION ALL
SELECT
DISTINCT cards.id, cards.name, cards.created_at, cards.updated_at
FROM cards
WHERE `cards`.`account_user_id`='9'
AND NOT `cards`.`deleted`
AND `cards`.`type` IN ('forms')
) AS qry
ORDER BY `updated_at` ASC
LIMIT 0, 25
【问题讨论】:
-
使用
UNION而不是UNION ALL