能不能select *from table1 as a 然后 select*from a ?

2024-05-06 12:22

1. 能不能select *from table1 as a 然后 select*from a ?

可以用子查询或临时表, 子查询类似这样
select * from (select * from table1) a 
临时表这样
select * into #aa from table1
select * from #aa

能不能select *from table1 as a 然后 select*from a ?

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 表的语法。

mysql中的 SELECT id,name INTO FROM table2 from table1

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. 如果该语句是通过封装的函数去执行的,需查一下这个函数

select a.id,a.name from (select * from table1) a 在Ibatis中报错,请问如何改正?

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语句。

select * from table1 where id in (select id from table2) 没作用

8. 以scott用户通过sqlplus 向oracle数据库中插入一行后,执行select * from table1正常。

那是因为你插入数据后没用进行提交:commit  ,数据不会保存到数据文件,所以关闭后你的表中没有数据。