4

我如何从中获得不同的title.id:

 SELECT Title.id, Title.title FROM titles as Title HAVING points > 0 
 UNION ALL 
 SELECT Title.id, Title.title FROM titles as Title HAVING points > 1

查询还有更多内容,但这应该足够继续了。

4

3 回答 3

16

只需删除ALL. 有些风格允许添加DISTINCT而不是ALL更明确,但是默认总是过滤我们的重复项是多余的。

MySQL - http://dev.mysql.com/doc/refman/5.0/en/union.html
MSSQL - http://msdn.microsoft.com/en-us/library/ms180026.aspx
ORACLE - https:// docs.oracle.com/cd/B28359_01/server.111/b28286/queries004.htm
PostgreSQL - http://www.postgresql.org/docs/8.3/interactive/queries-union.html
等。

于 2011-06-02T08:14:51.910 回答
1

简单的方法不是完全摆脱联合和第二部分:

SELECT Title.id, Title.title FROM titles as Title HAVING points > 0 

因为HAVING points > 0包括任何东西HAVING points > 1

于 2011-06-02T08:20:58.060 回答
0

ALL您可以按照其他人的建议放弃。

如果两个查询使用相同的表并且仅在WHERE子句中或仅在HAVING子句中不同,您也可以使用此:

SELECT Title.id, Title.title FROM titles as Title
WHERE (1st query conditions)
   OR (2nd query conditions)

或者

SELECT Title.id, Title.title FROM titles as Title
HAVING (1st query conditions)
    OR (2nd query conditions)
于 2011-06-02T08:49:24.330 回答