【发布时间】:2018-07-14 20:05:40
【问题描述】:
我正在尝试创建查询,该查询将显示过去 2 周的股票表、股票名称、ID、日期、网址、价格和价格列表。
对于 14 天的历史,我在 select 上使用了带有 group_concat 的子查询。
但是当我使用 group_concat 时,它会返回所有结果并忽略我的限制,所以我创建了另一个子查询,它将是 14 个价格,而 group_concat 将使它成为一个列表。
表'record_log'是所有股票的记录:
parent_stock_id - 此行所属的实际库存
价格 - 价格
search_date - 价格日期
第二个表是“股票”:
id - 股票的 id
名称,market_volume....
问题出在这里:
在子子查询(SELECT 的最后一行)中,当我过滤 parent_stock_id=stocks.id 时,他无法识别stocks.id,因为它属于主查询。
如何我从顶部获取 stock_id 并将其传递给子子查询?或者也许是另一个想法?
SELECT
stocks.id AS stock_id,
record_log.price AS price,
record_log.search_date,
(SELECT GROUP_CONCAT(price) FROM (SELECT price FROM record_log WHERE parent_stock_id=stocks.id ORDER BY id DESC LIMIT 14) AS nevemind) AS history
FROM stocks
INNER JOIN record_log ON stocks.id = record_log.parent_stock_id
WHERE
record_log.another_check !=0
谢谢!
---我并没有真正将它用于股票,它只是最简单的解释方式:)
【问题讨论】:
-
WHERE AND record_log.another_check !=0正确吗? -
@daniel.shih 这是另一行,我删除了“AND”。这不是问题:(