[英]JOIN a table by SELECT subquery with LIMIT 1 and WHERE clause matching column values outside of it
[英]Join with column outside subquery
SELECT t1.name as r_name, t1.values as r_values
FROM table as t1
JOIN (
SELECT SUM(amount) as amount
FROM database2.table
WHERE ids IN (t1.values)
) as t2
WHERE t1.id = 20;
我收到一個錯誤,子查詢中的t1.values
是未知列。
您需要重寫您的查詢並在where
join
條件:
SELECT t1.name as r_name, t1.values as r_values
FROM table as t1
JOIN (
SELECT SUM(amount) as amount
FROM database2.table
) as t2 ON t2.ids = t1.values
WHERE t1.id = 20;
另外,您不使用amount
列,那么join
的意義何在?
另一個問題,您沒有定義任何join
條件。
我認為您需要先閱讀 SQL 中的join
:)
您似乎正在嘗試根據t1.values
列表將database2.table
加入到您的t1
中。 自從您使用聚合 function 以來,我在t2
中添加了按 ID 分組。 然后,不確定您的sum(amount)
的目的是什么
SELECT t1.name as r_name, t1.values as r_values
FROM table as t1
JOIN (
SELECT SUM(amount) as amount, ids
FROM database2.table
GROUP BY ids
) as t2 on t2.ids IN (t1.values)
WHERE t1.id = 20;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.