数据库:ACCESS
语句:
SELECT *
FROM (SELECT 名称 as nsr, SUM(面积) AS a FROM 汇总 GROUP BY 名称) AS AA , (SELECT 权利人 as nsr, SUM(面积) AS b FROM 整理 GROUP BY 权利人) AS BB where AA.nsr like '*BB.nsr*'
以上语句把LIKE换成=可以查询出正确数据,但是我想要模糊查询,换成LIKE就查不到数据。
需求:
汇总表和整理表,两表中名称字段中都有多条同名不同面积的记录。
需要查询出两个表中名称近似的匹配项。
只会mysql数据库 你把*改成%试试
'*'+BB.nsr+'*'
https://blog.csdn.net/wangqiuyun/article/details/8447074
改成 AA.nsr like cancat('%',BB.nsr,'%')
你的这个需求用这个语句是实现不了的。你现在写的sql根本就没有关联条件,也就是说你的AA和BB关联结果是笛卡尔积输出的。输出之后你在where里通过限制AA表的数据来限制整个输出的结果,你明白我的意思吗。
你要找到那个近似的匹配项,首先你得有一个“近似”的标准,说白了就是什么样的数据才算是“近似”,最好是通过自定义函数来实现。