当前位置: 代码迷 >> 综合 >> Sqlserver INNER JOIN 查询出错排查
  详细解决方案

Sqlserver INNER JOIN 查询出错排查

热度:47   发布时间:2024-01-30 02:24:25.0


SELECT COUNT(*) AS totalcount1 FROM [CXHDJ].[dbo].T_Scan_Code WHERE mo = 'WO09941_2_IG_1' --总数705行
SELECT COUNT(*) AS totalcount2 FROM [CXHDJ].[dbo].T_JZ_CenerateBarcode WHERE mo = 'WO09941_2_IG_1' --总数705行
 ---- 内联查询 两个条件 返回 705 行
SELECT * FROM  (SELECT mo,san_barcode,mes_barcode FROM [CXHDJ].[dbo].[T_Scan_Code] WHERE mo = 'WO09941_2_IG_1') tsc
INNER JOIN (SELECT mo,jz_barcode FROM dbo.T_JZ_CenerateBarcode ) tjc
ON tjc.mo = tsc.mo AND tsc.san_barcode=tjc.jz_barcode  WHERE tjc.mo='WO09941_2_IG_1'

/*** 内联查询 一个条件 返回 497025 行受影响) 705*705 =497025 ????
* 内联查询必须保证on条件 是一对一,如果是一对多 则会出现 705*705=497025
* 因为 根据左边一行记录的mo字段进行查询时,右边表这个mo有705行记录
**/
SELECT * FROM  (SELECT mo,san_barcode,mes_barcode FROM [CXHDJ].[dbo].[T_Scan_Code]) tsc
INNER JOIN (SELECT mo,jz_barcode FROM dbo.T_JZ_CenerateBarcode ) tjc
ON tjc.mo = tsc.mo  WHERE tjc.mo='WO09941_2_IG_1'

  相关解决方案