1. 能不能select *from table1 as a 然后 select*from a ?
可以用子查询或临时表, 子查询类似这样
select * from (select * from table1) a
临时表这样
select * into #aa from table1
select * from #aa
2. selece *from table1,table2与select*from table1 union select*from table2的区别
差别很大。
前者结果是两表的笛卡尔积,后者是两表的并集
union必需两个结果表结构相同,
最终结果没有重复
你语句错在table1.*,table2.*表结构不一样
3. mysql中的 SELECT id,name INTO FROM table2 from table1
把查询结果添加到现有表中的语法是:
INSERT INTO table2 SELECT * FROM table1 WHERE ....
MYSQL不支持SELECT INTO 表的语法。
4. select * from table1 where id in (select id from table2),
大哥,你的语句都通不过的,我的已经通过了,还说我的不对吗?
你的意思不就是:想找的table1 里的ID既在table2里又在table3里吗??所以你才用AND
而那个你说对的兄弟,用OR ,也算是对了??
你闹啊?
select * from table1 where id in((select id from table2 where id in (select id from table3))
可以这样嵌套着写的,你那样写是错误的,你在分析器里测试下不就知道了
谢谢啊~
5. select a.id,a.name from (select * from table1) a 在Ibatis中报错,请问如何改正?
1. 查看table1是否存在 id、name这两个字段;
2. 如果该语句是通过封装的函数去执行的,需查一下这个函数
6. SELECT TOP N * FROM TABLE1什么意思
SELECT TOP N * FROM TABLE1
表示从数据表TABLE1中取前N条记录(数据)
您可以使用星号(*)来选取表的全部字段。譬如下例选取 [产品] 表中的前10条记录的全部字段:
SELECT TOP 10 * FROM 产品
7. select * from table1 where id in (select id from table2) 没作用
这个代码的含义是,取出table2的全部id值,然后在table1中查找,如果table1中的某行的对应id值在table2中存在,那么table1的该行将被查询出。
这句语句是合法的,比如table1中存在id值1 2 3的记录, table2中存在id值为2 3 5的记录,那么执行这句后,table1中的2 3两条记录将被查询到。
如果这并不是想要得到的效果,那么需要修改SQL语句。
8. 以scott用户通过sqlplus 向oracle数据库中插入一行后,执行select * from table1正常。
那是因为你插入数据后没用进行提交:commit ,数据不会保存到数据文件,所以关闭后你的表中没有数据。