SQL“ with”子句-错误代码:1046。未选择数据库通过在SCHEMAS中双击其名称来选择要使用的默认DB

时间:2018-08-10 17:45:23

标签: mysql mariadb

我有以下运行正常的查询:

select a.dataId, a.my_no,  b.my_attribute  from myDB.table_a a left join myDB.table_b b 
on a.my_no = b.my_no order by dataId

但是,如果我包含如下的with子句:

with my_table as (
    select a.dataId, a.my_no,  b.my_attribute  from myDB.table_a a left join myDB.table_b b 
    on a.my_no = b.my_no order by dataId
)

select * from my_table

我遇到以下错误:

Error Code: 1046. No database selected Select the default DB to be used by double-clicking its name in the SCHEMAS list in the sidebar.

这令人困惑...这两个查询不应该相同吗?我在这里做错了什么? (我正在使用MariaDB服务器)谢谢!

4 个答案:

答案 0 :(得分:4)

WITH子句之前,您应指定要使用的数据库

USE db_name;

那应该可以解决问题。

答案 1 :(得分:1)

只需:

select * from myDB.my_table

也可以。

答案 2 :(得分:0)

区别?仔细观察:

select ... myDB.table_a ...

with            table_a ...

答案 3 :(得分:-2)

创建你自己的数据库 MySQL 8.0 命令行客户端 - Unicode 作为创建一个新的数据库(名称) 之后在你的 MySQL Workbench 中使用它

例如: 您在(MySQL 8.0 命令行客户端 - Unicode)中创建一个数据库作为 parth

然后转到工作台并在第一行输入 使用部分;

并输入你所有的代码,它会起作用:-