sql server 如何查询两个没有关联的表。

时间:2021-12-23 13:28:16
比如有一个a表和一个b表,a表和b表没有任何关联。
用什么方式查询这个两个表当中所有包含关键字ab记录?并按照某一个表中的某一个列排序?
我知道有关联的两个表能用inner join on 关联,但没有关联的两个表怎么连接呢?

10 个解决方案

#1


没有关联的就用cross join,不需要on关键字的。不过于没有关联的表做关联这个方法绝大部分情况下是不合理的,你应该多考虑如何改进。

#2


select * from a ,b 

#3


那你说这种功能应该怎么实现呢?比如一个新闻表,一个论坛表,查询某个关键词,要把这两个表中包含这个关键词的记录都显示出来,然后再按某一个表的列排序?

#4


2楼回复的方法不行,有很多重复的记录,用DISTINCT 只能过滤一个表的,另一个表的记录还是一堆重复的

#5


1、用全文检索来实现查询。
2、我个人认为如果可以的话,新闻和论坛其实可以不分表,用一个类型的字段来合并就可以了。
3、用cross join,2楼的其实也是一样的。会产生大量数据,10000条数据就会产生1亿。这样对性能来说是毁灭性的。

#6


你具体的写出你的表结构来看看嘛

#7


现在已经是两个表了,而且都已经有数据了,改不了了,表的结构贴上也没有太多的用处,因为两个表完全没有任何的关联和逻辑。我现在就想知道一种思路,或者一种方法,怎么样才能做到呢?
5楼的朋友,你说的“全文检索”指的是什么意思,能否说的再明白一点呢?

#8


在不能改变表结构的前提下,全文检索基本上就是唯一的解决方法了,2005以后就有这个功能,最简单的解释就是类似于百度谷歌那样的实现方式,当然SQLServer还没有他们那么强大。你可以到联机丛书看看相关信息,这部分不是三言两语可以说清楚的。大概就是可以在你自定的表、列上搜索某些关键字,并且比like 强大的多。

#9


union all

#10


方法一:创建一个临时表,将两个表中要查询的数据存入,再从临时表中读取
方法二:再新加一个动态表,发布新闻或者发贴的时候,多增加一条动态数据

#1


没有关联的就用cross join,不需要on关键字的。不过于没有关联的表做关联这个方法绝大部分情况下是不合理的,你应该多考虑如何改进。

#2


select * from a ,b 

#3


那你说这种功能应该怎么实现呢?比如一个新闻表,一个论坛表,查询某个关键词,要把这两个表中包含这个关键词的记录都显示出来,然后再按某一个表的列排序?

#4


2楼回复的方法不行,有很多重复的记录,用DISTINCT 只能过滤一个表的,另一个表的记录还是一堆重复的

#5


1、用全文检索来实现查询。
2、我个人认为如果可以的话,新闻和论坛其实可以不分表,用一个类型的字段来合并就可以了。
3、用cross join,2楼的其实也是一样的。会产生大量数据,10000条数据就会产生1亿。这样对性能来说是毁灭性的。

#6


你具体的写出你的表结构来看看嘛

#7


现在已经是两个表了,而且都已经有数据了,改不了了,表的结构贴上也没有太多的用处,因为两个表完全没有任何的关联和逻辑。我现在就想知道一种思路,或者一种方法,怎么样才能做到呢?
5楼的朋友,你说的“全文检索”指的是什么意思,能否说的再明白一点呢?

#8


在不能改变表结构的前提下,全文检索基本上就是唯一的解决方法了,2005以后就有这个功能,最简单的解释就是类似于百度谷歌那样的实现方式,当然SQLServer还没有他们那么强大。你可以到联机丛书看看相关信息,这部分不是三言两语可以说清楚的。大概就是可以在你自定的表、列上搜索某些关键字,并且比like 强大的多。

#9


union all

#10


方法一:创建一个临时表,将两个表中要查询的数据存入,再从临时表中读取
方法二:再新加一个动态表,发布新闻或者发贴的时候,多增加一条动态数据