create temporary table, alter table, drop column, select * 麦麦 发表于 2022-04-13 17:24
回复 1楼microsat的帖子 正好最近搜过。有些sql支持 except命令。大部分不支持。可以考虑用drop去掉这些columns,然后select * houmitbbs 发表于 2022-04-13 17:22
不能drop。 假设table1, table2中共有一个id的列。 select table1.*, table2.* from table1 join table2 on table1.id = table2.id 那么这个id,会有两个 这个id怎么去掉一个呢? microsat 发表于 2022-04-13 17:29
你把结果temp table,然后drop嘛 麦麦 发表于 2022-04-13 17:31
回复 6楼microsat的帖子 如果是join是要用,但是join之后又不用了,也可以之后再drop吧 houmitbbs 发表于 2022-04-13 17:33
回复 8楼microsat的帖子 之前就把一个的名字改掉 比如在 table2里提前改成id1 houmitbbs 发表于 2022-04-13 17:34
有一种join是可以只留一个ID的。你查查看 rewish 发表于 2022-04-13 17:35
inner join? 但是我必须用left join,所以你的这个建议不能采用。 不过谢谢了! microsat 发表于 2022-04-13 17:37
这种temporary table 是会拷贝新建一个table吗?那样的话会不会很慢?还是内部有trick,并不需要copy整个table? vijj 发表于 2022-04-13 17:47
有没有这样的命令 select *, unselect age, unselect sex, unslect race from table1 来实现我的要求呢?
正好最近搜过。有些sql支持 except命令。大部分不支持。可以考虑用drop去掉这些columns,然后select *
这个挺好。 恍惚间以为来了stack overflow
alter table temptable1 drop column age, drop column sex, drop column race;
select * from temptable1;
不能drop。
假设table1, table2中共有一个id的列。 select table1.*, table2.* from table1 join table2 on table1.id = table2.id
那么这个id,会有两个 这个id怎么去掉一个呢?
你把结果temp table,然后drop嘛
但是在temp table里,这个id都是叫id,也就是有两个id名。 drop的时候,怎么知道是要drop 哪个id?
如果是join是要用,但是join之后又不用了,也可以之后再drop吧
关键是这个id,在join之后,有两个列,都叫这个名字。怎么drop掉第二个id,留第一个id?
之前就把一个的名字改掉 比如在 table2里提前改成id1
反正这俩个一样,就随便drop一个喽
这个方法好。谢谢!
有一种join是可以只留一个ID的。你查查看
inner join?
但是我必须用left join,所以你的这个建议不能采用。 不过谢谢了!
SELECT * FROM table1 LEFT JOIN table2 using(ID)
你用的平台支持using的话可以用left join
temp table是不会被log的所以我觉得还好