我如何从中获得不同的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
查询还有更多内容,但这应该足够继续了。
只需删除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
等。
简单的方法不是完全摆脱联合和第二部分:
SELECT Title.id, Title.title FROM titles as Title HAVING points > 0
因为HAVING points > 0
包括任何东西HAVING points > 1
?
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)