我正在尝试做一些简单的事情,我想在一个合并的结果中运行两个查询。
我编写了以下代码:
database.query('SELECT * FROM `inventories` WHERE `status` = ' + 1 + ' AS `liveInventory`, SELECT * FROM `users` WHERE `balance` >= ' + 0.00 + ' AS `liveBalances`', function(error, call) {
if(error){
console.log(error);
return;
}
console.log(call);
});
导致以下错误;
错误:ER_PARSE_ERROR:您的SQL语法有错误;请查看与您的MySQL服务器版本相对应的手册,以获取在'AS
liveInventory
附近使用SELECT的正确语法,选择* FROMusers
WHEREbalance
> = 0 ASliveBalances
' 1行 `
语法不正确吗?
答案 0 :(得分:0)
您可以为列或表使用别名,但不能使用where子句的结果。
标准SQL不允许在WHERE子句中引用列别名。之所以施加此限制,是因为在评估WHERE子句时,可能尚未确定列值。
有some better explained examples on W3Schools演示了MySQL别名通常如何工作。