我想组合查询3个表,表名分别是TBL_ITEM,TBL_ITEMK,TBL_SAVEDITEM,其中TBL_ITEM.FLD_CHARACTER等于TBL_SAVEDITEM.FLD_CHARACTER等于TBL_ITEMK.ZBNAME ,查询 TBL_ITEMK.MAKEINDEX 这个字段的值,既不在TBL_ITEM.FLD_MAKEINDEX,也不在TBL_SAVEDITEM.FLD_MAKEINDEX,帮我写一条SQLSERVER 查询分析器的语句,并且去除重复
分类:传奇3 阅读:1380
2024-12-04 00:00
假设TBL_ITEMK.ZBNAME和TBL_ITEM.FLD_CHARACTER以及TBL_SAVEDITEM.FLD_CHARACTER之间的连接是唯一的,你可以使用以下SQL查询语句来获取你想要的结果:
sql
SELECT TBL_ITEMK.MAKEINDEX
FROM TBL_ITEM
INNER JOIN TBL_SAVEDITEM ON TBL_ITEM.FLD_CHARACTER = TBL_SAVEDITEM.FLD_CHARACTER
INNER JOIN TBL_ITEMK ON TBL_ITEM.FLD_CHARACTER = TBL_ITEMK.ZBNAME
WHERE TBL_ITEMK.MAKEINDEX NOT IN (SELECT TBL_ITEM.FLD_MAKEINDEX FROM TBL_ITEM)
AND TBL_ITEMK.MAKEINDEX NOT IN (SELECT TBL_SAVEDITEM.FLD_MAKEINDEX FROM TBL_SAVEDITEM)
这个查询语句首先将三个表进行内连接,连接条件为TBL_ITEM.FLD_CHARACTER等于TBL_SAVEDITEM.FLD_CHARACTER以及等于TBL_ITEMK.ZBNAME。然后从连接后的结果中筛选出不在TBL_ITEM.FLD_MAKEINDEX和不在TBL_SAVEDITEM.FLD_MAKEINDEX的MAKEINDEX值。
请注意,如果你的数据量非常大,这个查询可能会比较慢,因为它需要在两个子查询中分别查询两个表的数据。为了提高性能,你可以考虑在查询之前对字段进行索引,或者使用其他优化技术,例如使用临时表或者表变量等。
Copyright ® 2003 - 2023 Http://Www.51c7.Com All rights reserved
本站中文版权所有 吾要传奇 保留所有权利 未经许可请勿任意转载或复制使用