子查询是否可以返回两个值?

时间:2010-12-20 00:36:22

标签: sql mysql subquery mysql-error-1241

子查询是否可以将两个值返回到外部查询? 如:

SELECT 1, 
       (SELECT COUNT(*), MAX(*) FROM test_table WHERE test=123) 
FROM another_table

或者有更好的方法吗?

4 个答案:

答案 0 :(得分:6)

如果在FROM子句而不是字段列表中使用子查询,则可以将输出视为表并引用单独的列。

答案 1 :(得分:1)

您只是选择数字作为结果,所以不能这样做:

SELECT 1, COUNT(*), MAX(*) FROM test_table WHERE test=123

答案 2 :(得分:0)

不可能

mysql> select 1, (select 2, 3) from dual;
ERROR 1241 (21000): Operand should contain 1 column(s)

如果你正在处理两个表,而你在一行中得到结果,你应该预先形成一个联接。

答案 3 :(得分:0)

嗯,这取决于你想要对数据做什么,你可以使用JOIN语法连接两个表,其中一个表实际上可以是一个子查询。我想这可能就是你想要的。

我甚至不是用户当前查询会做什么..

文档: http://dev.mysql.com/doc/refman/5.0/en/join.html