有没有办法基于另一列填充一列。
例如
SELECT name, age, (select count(*) FROM ORDERS WHERE name = **value in column [name]**) FROM PEOPLE
任何帮助将不胜感激。
你可以,但你必须为表使用正确的别名:
SELECT
p.name,
p.age,
(select count(*) FROM ORDERS o WHERE o.name = p.name) counter
FROM PEOPLE p
因此,可以区分来自不同表的 2 列,它们都具有相同的名称name
。
正如 Larnu 所建议的那样,尝试通过连接表和聚合来执行相同操作的替代方案:
SELECT
p.name,
p.age,
count(o.name) counter
FROM PEOPLE p LEFT JOIN ORDERS o
ON o.name = p.name
GROUP BY p.name