我需要这样做:
SELECT COUNT(*)
FROM some_table
WHERE someAlias1 = someValue1
AND someAlias2 = someValue2;
someAlias
是some_table
中列的别名。就我而言,我不能直接命名列;我需要使用别名。
问题是我只知道在select子句中定义别名,在这种情况下我不知道如何做。
在这种情况下,有没有办法完成我需要的东西?
编辑:为什么我需要别名?我正在构建来自备用部分的查询,并且上述条件适用于来自不同表的不同列,但具有相同的逻辑角色。所以我需要一种方法来关联具有相同名称的不同替代列。
如果你只是在知道答案的情况下回答这个问题,我将不胜感激,即使你不明白我为什么需要别名
答案 0 :(得分:2)
我无法弄清楚你不能直接命名列的场景。如果列名重复,则在表名前加上:
WHERE someTable1.someColumn1 = someValue1
如果列名是保留关键字或包含空格,请引用它:
WHERE `some Column1` = someValue1
您甚至可以将两者结合起来:
WHERE someTable1.`some Column1` = someValue1
答案 1 :(得分:2)
你可以做一个嵌套的SELECT语句,然后从内部查询中抽出计数,我真的没有看到使用列名转义的方法
SELECT COUNT(*)
FROM(
SELECT col1 as someAlias1,
col2 as someAlias2
FROM some_table
WHERE someAlias1 = someValue1
AND someAlias2 = someValue2
) as inner
答案 2 :(得分:0)
为什么需要使用别名?在您的查询中使用别名的唯一原因是在例如重复使用一个“有”的条款,如:
select count(*) as C
from some_table
where someAlias1=someValue1
and someAlias2=someValue2
having C > someLimit1;