我是靠谱客的博主 无语蜜粉,最近开发中收集的这篇文章主要介绍SELECT t1.*,t2.* from table1 t1, table2 t2 多列or匹配模糊查询按匹配字段排序带where条件相当于内连接,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

SELECT t1.*,t2.* from table1 t1, table2 t2《===》SELECT * FROM table1 t1 CROSS JOIN table2 t2

以两张表的数据为基准,返回笛卡尔积!

每行字段为两张表的字段数和

FROM T1,T2是ANSI SQL-89的旧语法,用逗号分隔FROM子句出现的表名,没有JOIN关键字,也没有ON子句,它只支持交叉联接和内联接,不支持外联接;如果没有指定联接条件就是一个交叉联接。

新的ANSI SQL-92去掉了逗号,引入了JOIN和ON,支持交叉联接、内联接和外联接。

带where条件相当于内连接

SELECT * FROM table1 t1,table2 t2 where
t1.column = t2.column

等价于

SELECT * FROM table1 t1 INNER JOIN table2 t2 ON t1.column = t2.column

有个表pages ,有5个属性,id, url, title, body, site.
问: 用一条SQL语句搜出url,body,或site中包含’test’字符串的数据,且将含有‘test’的url 的结果放在最前面,其次是body, 然后是site 且不能有重复数据

创建表
CREATE TABLE pages (
id INT,
url nvarchar ( 100 ),
Title nvarchar ( 100 ),
body nvarchar ( 100 ),
site nvarchar ( 100 ) 
) 

准备测试数据
INSERT pages SELECT
1,
'a',
'b',
'c',
'd' UNION ALL
SELECT
	2,
	'a',
	'b',
	'c',
	'test' UNION ALL
SELECT
	3,
	'a',
	'b',
	'test',
	'd' UNION ALL
SELECT
	4,
	'ftest',
	'b',
	'c',
	'd' UNION ALL
SELECT
	5,
	'ftest',
	'b',
	'test',
	'test' UNION ALL
SELECT
	6,
	'fffffffffff',
	'testb',
	'testc',
	'd'
GO

查询语句

SELECT
	* 
FROM
	pages 
WHERE
	url LIKE '%test%' 
	OR body LIKE '%test%' 
	OR site LIKE '%test%' 
ORDER BY
CASE
	
	WHEN url LIKE '%test%' THEN
	0 
	WHEN body LIKE '%test%' THEN
	1 
	WHEN site LIKE '%test%' THEN
	2 
END 

 查询结果

最后

以上就是无语蜜粉为你收集整理的SELECT t1.*,t2.* from table1 t1, table2 t2 多列or匹配模糊查询按匹配字段排序带where条件相当于内连接的全部内容,希望文章能够帮你解决SELECT t1.*,t2.* from table1 t1, table2 t2 多列or匹配模糊查询按匹配字段排序带where条件相当于内连接所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部