繁体   English   中英

SQL:子查询? 拉柱使用条件

[英]SQL: Subquery? Pulling column using condition

当前的 SQL 代码是:

    SELECT k.id, k.symbol, y.close, y.volume, 
((y.close / y.close_adj_previous_day)-1) AS percent_change
        FROM symbols k
        JOIN stocks y ON k.id = y.id
    WHERE 
        k.t_removed = 0
        AND t = '$max_t'
    ORDER BY percent_change DESC
    LIMIT 10

试图获得 close_adj_previous_day。 目前我使用另一个查询来获取 close_adj_previous 一天:

        SELECT k.close_adj AS close_adj_previous_day
        FROM stocks k
        WHERE 
            k.id = '$id'
            AND k.t = '$max_t_minus_one'
        LIMIT 1

我将如何组合这些查询,以将结果排序为顶级查询? 谢谢伙计们/女孩们。

表中的半示例:

示例表种类

如果您有变量,请使用join :您在变量中有前一天的值。 您可以只使用join

SELECT k.id, k.symbol, y.close, y.volume, 
   ((y.close / yprev.close)-1) AS percent_change,
   yprev.close_adj AS close_adj_previous_day
FROM symbols k JOIN
     stocks y
     ON k.id = y.id AND y.t = '$max_t' JOIN
     stocks yprev
     ON k.id = yprev.id and yprev.t = '$max_t_minus_one'
WHERE k.t_removed = 0
ORDER BY percent_change DESC
LIMIT 10

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM