有两张表,一张表名为t_smrzxx,字段有(xm,sfzjhm,lxdh);另一张表为t_smrz_sjjhm,z字段有(xm,sfzjhm,lxdh)如何查处表t_smrzxx中lxdh字段对应再t_smrz_sjhm中的多个用户
时间: 2024-03-12 16:47:32 浏览: 16
可以使用子查询和IN运算符来实现这个查询。具体的SQL语句如下:
```
SELECT xm, sfzjhm, lxdh
FROM t_smrzxx
WHERE lxdh IN (
SELECT lxdh
FROM t_smrz_sjjhm
GROUP BY lxdh
HAVING COUNT(*) > 1
);
```
这个查询首先在子查询中找到在t_smrz_sjjhm表中出现次数大于1的lxdh字段,然后将这些lxdh值作为条件在t_smrzxx表中查找对应的记录,即可得到在t_smrz_sjjhm表中对应多个用户的记录。
相关问题
insert into ( wid, zgh, dwdm, px, zw, dwpx, zwpx, xm, dw, dwmc, bgdh, lxdh, dh ) select sys_guid(), zgh, gzdwdm, px+1 from t_zgdw_ryxx这样想让px一直+1但是t_zgdw_ryxx表没有px这个字段
根你提供的 SQL 语句,应该是想将 t_zgdw_ryxx 表中的数据插入到另一张表中,并且在插入时将 px 字段的值加 1。但是你发现 t_zgdw_ryxx 表中没有 px 这个字段。
如果想要在插入时自动给 px 字段加 1,可以在另一张表中创建一个 px 字段并设置默认值为 1,然后在 SQL 语句中将 px 字段的值设置为自身加 1,例如:
```
INSERT INTO new_table (wid, zgh, dwdm, px, zw, dwpx, zwpx, xm, dw, dwmc, bgdh, lxdh, dh)
SELECT sys_guid(), zgh, gzdwdm, COALESCE(px, 0) + 1, zw, dwpx, zwpx, xm, dw, dwmc, bgdh, lxdh, dh
FROM t_zgdw_ryxx;
```
在上面的 SQL 语句中,COALESCE(px, 0) + 1 操作会将 px 字段的值加 1,如果 px 字段不存在,则默认为 0 加 1。这样就可以达到你想要的效果。
insert into ( wid, zgh, dwdm, px, zw, dwpx, zwpx, xm, dw, dwmc, bgdh, lxdh, dh ) select sys_guid(), zgh, gzdwdm, px+1 from t_zgdw_ryxx这样想让px连续+1但是t_zgdw_ryxx表没有px这个字段
如果表t_zgdw_ryxx没有px这个字段,那么您可以使用ROWNUM来实现px连续+1的效果。具体做法如下:
```
INSERT INTO (wid, zgh, dwdm, px, zw, dwpx, zwpx, xm, dw, dwmc, bgdh, lxdh, dh)
SELECT sys_guid(), zgh, gzdwdm, ROWNUM, zw, dwpx, zwpx, xm, dw, dwmc, bgdh, lxdh, dh
FROM t_zgdw_ryxx;
```
这样可以将结果集的行号作为px字段插入到目标表中,实现px连续+1的效果。