这是否有表现或其他差异:
SELECT distinct(users.id),2 as someFieldName ,0 as someOtherFieldName
From users join ...
和此:
SELECT distinct users.id ,2 as someFieldName ,0 as someOtherFieldName
From users join ...
结果集用作插入语句的一部分,并且由于连接(此处未显示),select可能会多次返回同一用户i.d
我正在使用mysql。
答案 0 :(得分:4)
没有“明显的领域”这样的东西。您的第一个语法与第二个语法的解析相同:括号仅包围字段表达式。你也可以写:
SELECT DISTINCT (users.id), (2) AS someFieldName, (0) AS someOtherFieldName
它们都是等价的。
如果您想避免对常量列进行比较,可以使用GROUP BY
:
SELECT users.id, 2 AS someFieldName, 0 AS someOtherFieldName
FROM users JOIN ...
GROUP BY users.id
答案 1 :(得分:4)
没有区别,因为此上下文中的DISTINCT
仅对行进行操作。
ALL和DISTINCT选项指定是否应该有重复的行 回。 ALL(默认值)指定所有匹配的行应该是 返回,包括重复。 DISTINCT指定删除 结果集中的重复行。指定两者都是错误的 选项。 DISTINCTROW是DISTINCT的同义词。