SQL 查询,用于根据行中的值返回值



有没有办法基于另一列填充一列。

例如

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

最新更新