【发布时间】:2020-04-25 21:59:45
【问题描述】:
希望有人可以就我正在尝试做的子查询提出建议。我仍在努力研究子查询。
这是我正在尝试运行的查询:
SELECT name (SELECT type AS User, count(*) As Number
from table 1
where event = 'answerall'
) from table 2
单独运行两个查询可以正常工作,但不能让它们一起工作。
我想获取表2的列名的内容并添加到表1中。
所以我有这样的查询:
Name User Number
Jimmy 7001 7
抱歉我试过了:
SELECT
name,
(SELECT
type AS Agent, COUNT(*) AS Number
FROM
queue_log
WHERE
event = 'OUTANSWER')
FROM
agents_conf
并得到错误“操作数应包含 1 列”
queue_log 表和agents_conf 互不相关,但在同一个数据库中
queue_log 表示例
uid - type - event
1 - Agent6001 - OUTANSWER
2 - Agent6002 - CONNECT
3 - Agent6001 - ABANDON
4 - Agent5003 - OUTANSWER
在此处运行此查询可以正常工作:
SELECT type AS Agent, count(*) As Number from queue_log where event = 'OUTANSWER'
Agent.conf 表:
agent_number - name
6001 - Jim
6002 - James
6003 - John
运行此查询运行良好,并为我提供所有名称的列表
SELECT name from agents_conf
【问题讨论】:
-
可惜上面的格式不正确,应该是 Name Jimmy User 7001 Number 7
-
那是无效的语法。
SELECT name (SELECT语法不正确;至少它在name之后缺少一个逗号,这会导致它无法运行。这不是您的实际 SQL,或者您遇到了一个您不想在问题中包含的错误。请edit 包含您的实际代码或包含exact 错误消息。您还可以在使用时修复代码格式;使用工具栏上的?按钮获取有关如何操作的帮助。还包括两个表中的一些示例数据; -
Running both queries on their own works fine.这根本不是真的 -
两张表是否相关?如果不是,那么查询的逻辑是什么。如果是怎么办?使用示例数据和预期结果编辑您的问题以进行澄清。
-
mysql 表示不允许返回两列。以这种方式进行这样的子查询,但我会看到产生 Jimmy 7001 7 的数据