MySQL是否能够通过一个查询返回多个结果集?

时间:2009-10-14 20:59:24

标签: sql mysql ruby dbi

我从proc中成功执行了以下(返回两个单独的结果集),但在将其作为基本查询执行时却无法执行相同的操作。

SELECT * FROM persons;
SELECT * FROM addresses;

可能?语法是什么?

编辑:

我正在使用Ruby的DBI库:

dbh.query("SELECT * FROM persons; SELECT * FROM addresses;")

3 个答案:

答案 0 :(得分:4)

你是在谈论mysql cli吗?对我来说很好:

mysql> select count(*) from a; select count(*) from a;
+----------+
| count(*) |
+----------+
|     2050 |
+----------+
1 row in set (0.06 sec)

+----------+
| count(*) |
+----------+
|     2050 |
+----------+
1 row in set (0.00 sec)

如果你在谈论一种特定的语言,那么它取决于你的mysql库。例如,PHP mysql库不支持此功能。但是,如果你使用multi_query(),mysqli库会这样做。

答案 1 :(得分:2)

加入人员和地址,您可以获得一个大结果表,假设地址与具有某些标识符的人相关联。如果两个查询不相关,为什么要将它们放在一起?

答案 2 :(得分:-1)

如果数据相关,则使用JOIN将地址项加入人物项目。如果您的表都包含类似的列,您可能需要UNION SELECT,如下所示:

SELECT * FROM people 联盟 SELECT * FROM addresses;