我有以下运行正常的查询:
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服务器)谢谢!
答案 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
然后转到工作台并在第一行输入 使用部分;
并输入你所有的代码,它会起作用:-