日期:2014-05-17  浏览次数:20636 次

请教一个关联查询问题
3个表关联查询,t1,t2,t3 条件是、
第一:以t1表记录为准 t1.id=t2.id  select * from t1 left join t2 on t1.id=t2.id 
第二:t2.sid =t3.sid
这个sql应该如何写呢?

------解决方案--------------------
引用:
不对呀,第一个条件查询 我查询2000多条记录 加上后面的条件 我查出14万条记录了 按我的想法 应该加上第2个条件也是查询出2000多条记录呢?
因为你用了leftjoin 改成inner join试试
------解决方案--------------------
引用:
SELECT *  FROM 
GPRXSJB t2 LEFT JOIN dbo.GPZB t3 ON t2.T_GPZB_ID=t3.T_GPZB_ID 
INNER JOIN dbo.GSCWZYZB t1 ON t1.T_GSZB_ID=t3.T_GSZB_ID
WHERE t2.FSRQ='2013-05-20'

还是不对呀,我这里 SELECT *  FROM 
GPRXSJB t2 LEFT JOIN dbo.GPZB t3 ON t2.T_GPZB_ID=t3.T_GPZB_ID  WHERE t2.FSRQ='2013-05-20'查询出来是2000多条记录
但是 加上后面的条件就还是14W条了
你是T2和T1连还是T3和T1连?要搞清楚关系,我觉得你应该是T1和T2连
------解决方案--------------------

首先检查一下
dbo.GSCWZYZB表 T_GSZB_ID字段是否唯一(主键),如果不是,那关联起来肯定不止2000多条
从你上面说的加了这个表数据就14w,所以很有可能是我说的那原因