sqlserver远程查询mysql数据库,odbc驱动和链接服务器我都建好了
是关于openquery的多表查询问题declare @MySQLTest varchar(30)
declare @strsql varchar(8000)
declare @Name varchar(30)
set @MySQLTest='crazy1'
set @name='mhbsam'
set @strsql = ('SELECT * FROM OPENQUERY ('+@MySQLTest+' ,''select a.*,b.* from 表 a,表 b '') where a.id=b.id and b.username='''+@Name+'''')
print @strsql
exec(@strsql)
报错:服务器: 消息 107,级别 16,状态 2,行 1
列前缀 'a' 与查询中所用的表名或别名不匹配。
服务器: 消息 107,级别 16,状态 1,行 1
列前缀 'b' 与查询中所用的表名或别名不匹配。
服务器: 消息 107,级别 16,状态 1,行 1
列前缀 'b' 与查询中所用的表名或别名不匹配。是openquery不支持多表,还是我的写法有误,单表查询时没问题,请指教~
是关于openquery的多表查询问题declare @MySQLTest varchar(30)
declare @strsql varchar(8000)
declare @Name varchar(30)
set @MySQLTest='crazy1'
set @name='mhbsam'
set @strsql = ('SELECT * FROM OPENQUERY ('+@MySQLTest+' ,''select a.*,b.* from 表 a,表 b '') where a.id=b.id and b.username='''+@Name+'''')
print @strsql
exec(@strsql)
报错:服务器: 消息 107,级别 16,状态 2,行 1
列前缀 'a' 与查询中所用的表名或别名不匹配。
服务器: 消息 107,级别 16,状态 1,行 1
列前缀 'b' 与查询中所用的表名或别名不匹配。
服务器: 消息 107,级别 16,状态 1,行 1
列前缀 'b' 与查询中所用的表名或别名不匹配。是openquery不支持多表,还是我的写法有误,单表查询时没问题,请指教~
-------------------------------------------------------------------------------------------------------------------------------------
declare @MySQLTest varchar(30)
declare @strsql varchar(8000)
declare @Name varchar(30)
set @MySQLTest='crazy1'
set @name='mhbsam'
set @strsql = ('SELECT * FROM OPENQUERY ('+@MySQLTest+' ,''select * from 表 '') a,OPENQUERY ('+@MySQLTest+' ,''select * from 表 '') b where a.id=b.id and b.username='''+@Name+'''')
print @strsql
exec(@strsql)
set @strsql = ('SELECT * FROM OPENQUERY ('+@MySQLTest+' ,''select a.*,b.* from 表a a,表b b where a.id=b.id and b.username='''+@Name+''''')')
-------------------------------------------------------------------------------------------------------------------------------------
declare @MySQLTest varchar(30)
declare @strsql varchar(8000)
declare @Name varchar(30)
set @MySQLTest='crazy1'
set @name='mhbsam'
set @strsql = ('SELECT * FROM OPENQUERY ('+@MySQLTest+' ,''select a.*,b.* from 表 a,表 b where a.id=b.id and b.username='''''+@Name+''''''') ')
print @strsql
exec(@strsql)