最近一直在使用脚本编辑器在发布外链以及更新站群等工作,感觉还是省了不少力气。
但今天遇到一个问题:
我在本地建立SQL数据库,采集了10个表的数据,每一个表的字段都是相同的。脚本编辑器按照SQL语句查询数据发布,按照惯例:字段可以多差,数据库是不是也可以加上','号写一起查询呢?结果不行的,提示错误。
也百度了一定时间,都是在说多表联合查询,看的是有点头晕,最终找到一个简单可用的方法,SQL语句如下:
select title,content from (select title,content from a2susluoding union all select title,content from a2susluomu union all select title,content from a2susluoshuan union all select title,content from a4sus union all select title,content from carbonsteelliujiaotouluoshuan union all select title,content from jixiezigongzuanwei union all select title,content from tangangneiliujiaoluoding union all select title,content from tghuasedianquan union all select title,content from tghuaseluomu union all select title,content from xiaojianshuangtouluoshuan ) zhou where zhou.title like '%吊环%' |
这个是我最终的SQL查询,唯独在后面条件位置‘zhou’ 是怎么过来的,多试了几次,发现可以是任意值,但是去掉了会提示错误,我是不是可以理解:前面括号里面,查询这几个表数据(当前几个表的字段需要相同,不相同的情况你可以试一试,目前我也是不很明白)放在一个虚拟的表‘zhou’里面,这个虚拟的表的名称是可以任意的,然后后面写条件,从虚拟表‘zhou’里面筛选。或者直接在括号里面每一条的查询语句加筛选条件,将查询的结果集合起来,个人觉得这个办法也是可以的。
最后分享SQL语句中‘union’ 的意思,摘自互联网:
UNION 操作符用于合并两个或多个 SELECT 语句的结果集。
请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。
SELECT column_name(s) FROM table_name1 UNION SELECT column_name(s) FROM table_name2
注释:默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL。
SELECT column_name(s) FROM table_name1 UNION ALL SELECT column_name(s) FROM table_name2
另外,UNION 结果集中的列名总是等于 UNION 中第一个 SELECT 语句中的列名。
E_ID | E_Name |
---|---|
01 | Zhang, Hua |
02 | Wang, Wei |
03 | Carter, Thomas |
04 | Yang, Ming |
E_ID | E_Name |
---|---|
01 | Adams, John |
02 | Bush, George |
03 | Carter, Thomas |
04 | Gates, Bill |
列出所有在中国和美国的不同的雇员名:
SELECT E_Name FROM Employees_China UNION SELECT E_Name FROM Employees_USA
E_Name |
---|
Zhang, Hua |
Wang, Wei |
Carter, Thomas |
Yang, Ming |
Adams, John |
Bush, George |
Gates, Bill |
注释:这个命令无法列出在中国和美国的所有雇员。在上面的例子中,我们有两个名字相同的雇员,他们当中只有一个人被列出来了。UNION 命令只会选取不同的值。
UNION ALL 命令和 UNION 命令几乎是等效的,不过 UNION ALL 命令会列出所有的值。
SQL Statement 1 UNION ALL SQL Statement 2
列出在中国和美国的所有的雇员:
SELECT E_Name FROM Employees_China UNION ALL SELECT E_Name FROM Employees_USA
E_Name |
---|
Zhang, Hua |
Wang, Wei |
Carter, Thomas |
Yang, Ming |
Adams, John |
Bush, George |
Carter, Thomas |
Gates, Bill |
来自Davids zhou博客原创文章请尊重作者:http://www.zongk.com/zongk/52.html转载请标注此链接
Davids zhou | 站点地图 | | | 皖ICP备14017762号 如有侵犯您权利点击上面QQ -Powered By 帝国CMS -davids.zhou#qq.com(#换@)
Davidszhou个人博客主要记录在网站建设、SEO优化、python开发、PHP开发中遇到问题记录保存,作为他人参考学习教程