gpt4 book ai didi

mysql - #1054 - 'tt.date' 中的未知列 'where clause'

转载 作者:行者123 更新时间:2023-12-01 00:23:28 26 4
gpt4 key购买 nike

我到处用谷歌搜索并尝试了几个小时,我放弃了...我终其一生都找不到解决此问题的方法...#1054 - Unknown column 'bb 'where 子句'中的 .date'。我确实需要访问 bb.date,但我无法访问嵌套 LEFT JOIN 中的别名“bb”,但我需要访问它。如何将别名传递到该范围?

SELECT
bb.date,
PP.max_sell_price_asofdate,
i.item_id,
bb.transaction_id
FROM items_transactions bb

LEFT JOIN items_transactions_details t
ON bb.transaction_id = t.transaction_id

LEFT JOIN items i
ON i.item_id = t.item_id

LEFT JOIN (
SELECT
pp.item_id,
MAX(pp.sell_price_asofdate) max_sell_price_asofdate
FROM items_prices pp
WHERE bb.date >= ss.sell_price_asofdate -- #1054 - Unknown column 'bb.date' in 'where clause'
GROUP BY pp.item_id
) PP ON PP.item_id = i.item_id

如果我提供更多关于我试图用表及其一些相关字段完成的事情的详细信息,可能会更好......即使我可以访问 bb 别名,我的查询似乎也不正确。基本上我想做的是加入以下所有表格并确保每个交易项目都获得正确的 sell_price。因此,例如,对于购买日期为 2019-11-29 的 item_id 148 的交易 611 应该与正确的 sell_price 13 连接,因为表 items_prices 中 item_id 148 的最新价格历史变化日期为 2019-11-28,即 sell_price 13.目前它错误地加入了每个项目的所有价格

items_transactions

items_transactions

items_transactions_details

items_transactions_details

items_prices

items_prices

表格项目

items

最佳答案

您可以使用对外部表的引用,但不能引用与代理查询位于同一 from 子句中的表。例如,您可以将代理查询移动到 SELECT 子句:

SELECT
bb.date,
i.item_id,
bb.transaction_id,
(
SELECT
MAX(pp.sell_price_asofdate) max_sell_price_asofdate
FROM items_prices pp
WHERE
bb.date >= pp.sell_price_asofdate
and pp.item_id = i.item_id
GROUP BY pp.item_id
) max_sell_price_asofdate

FROM items_transactions bb

LEFT JOIN items_transactions_details t
ON bb.transaction_id = t.transaction_id

LEFT JOIN items i
ON i.item_id = t.item_id

请注意,代理查询的性能不是很好。没有代理查询:

SELECT 
A.date, A.item_id, A.transaction_id ,
MAX(B.sell_price_asofdate) as max_sell_price_asofdate
FROM
(
SELECT
bb.date,
i.item_id,
bb.transaction_id

FROM items_transactions bb

LEFT JOIN items_transactions_details t
ON bb.transaction_id = t.transaction_id

LEFT JOIN items i
ON i.item_id = t.item_id
) A
LEFT OUTER JOIN
(
SELECT
pp.item_id,
pp.sell_price_asofdate
FROM items_prices pp
) B
ON
A.date >= B.sell_price_asofdate
and B.item_id = A.item_id
GROUP BY
A.date, A.item_id, A.transaction_id

关于mysql - #1054 - 'tt.date' 中的未知列 'where clause',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59108043/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com