mysql - 选择子查询的结果

标签 mysql sql subquery mysql5

我正在尝试选择 q1.res,这将是 FROM 子查询的结果:

    (SELECT SUM(gwr.res1)/(COUNT(*)*1000) as 'res' 
     FROM process.gwr 
     WHERE started = 1 AND gwr.user2 = g.id AND gwr.loss = g.id) AS q1

问题是我试图在子查询中选择g.id,但由于某种原因它无法访问它并返回错误消息:

[Err] 1054 - “where 子句”中存在未知列“g.id”

这没有意义,因为 g.id(grand.id 具有 id 列)

SELECT
    g.name, g.point, g.mx, q1.res
FROM
    (SELECT SUM(gwr.res1)/(COUNT(*)*1000) as 'res' 
     FROM process.gwr 
     WHERE (started = 1) AND (gwr.user2 = g.id) AND (gwr.loss = g.id)) AS q1, grand g
LEFT JOIN process.users p ON (p.id = g.owner)
WHERE
    p.name != ""
ORDER BY
    g.point DESC,
    g.mx DESC
LIMIT 5

问题出在哪里?

最佳答案

尝试从子查询的“res”中删除“”。

SELECT
    g.name, g.point, g.mx, q1.res
FROM
    (SELECT SUM(gwr.res1)/(COUNT(*)*1000) as res FROM process.gwr WHERE started = 1 AND gwr.user2 = g.id AND gwr.loss = g.id) AS q1, grand g
LEFT JOIN process.users p ON (p.id = g.owner)
WHERE
    p.name != ""
ORDER BY
    g.point DESC,
    g.mx DESC
LIMIT 5

关于mysql - 选择子查询的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21141749/

相关文章:

c# - 使用 ORM 创建数据库

javascript - 如何在云代码中使用 Parse Promise 进行循环查询?

mysql - CASE..WHEN 中的所有子查询是否都被执行,即使只满足一个条件?

带有左连接语法错误的 SQL 子查询

php - 加入其他表的数据透视表

php - 在 Magento 1.7.2 中使用 MYSQL 查询插入相同的产品描述

mysql - 在mysql中创建 View 时,是否可以使用日期函数?

mysql - 如何使用 Express 访问 get 请求的结果(对象)?

sql - SQL中如何消除重复计算?

Mysql 如何通过将查询字符串与全文搜索匹配来排序 MATCH AGAINST