Select * from A ,B where A.id not in B.PId 如果a.id为空查出来都是空的如何处理

2025-04-15 16:04:11
推荐回答(2个)
回答1:

1.
A的id和B的PID是相同的含义吗?

2.
一般来说,ID都不会允许空的
如果两个表的ID是相同的含义,可以这样写:
SELECT A.*,B.* FROM dbo.A AS A LEFT JOIN dbo.B AS B ON A.ID = B.ID
WHERE A.ID NOT IN (B.ID)

3.
如果连接了两个表,而没有条件限制的话,查出来的数据基本没有太大意义,会叠加
两个表如果有相同含义的字段匹配,可以用 left join中的on 或者where条件a.id = b.id 来确保数据是对应的

4.
可以用 isnull([可能为空的字段],[如果为空要显示的值]) 将null值替换为你想要的值或者字段

回答2:

这个最好换成left join之类。