如何生成这个记录集?

时间:2022-06-21 23:48:10
表A,表B,表C,都有相同的字段NUM

现在想
select A.Num,A.name,B.sex,B.age from A,B,C where
表A和表B中的NUM  和表C中NUM不相等的所有记录
请问这个where后的sql怎么写.

11 个解决方案

#1



    问题还不在于where语句怎么写。
    你的三个表间的关系还没有交代清楚呢。还有,“表A和表B中的NUM  和表C中NUM不相等的所有记录”这句话可以理解成不同的意思。请准确描述。最好给出示例数据。

#2


确实,至少可以理解成3种意思

#3


晕了,问问题之前一定要把问题搞清楚~~~~

#4


题目确实让人费解啊,
不过应该不难,用not in 或 exists

#5


gz

#6


很乱呵,不过用Left join 应该可以了。

#7


例如:
表A: num name
      1    a
      2    b
      3    c
表B: num  sex  age
      1   boy   5
      2   boy   6
      3   boy   7

表C: num  
      1  

最终想要得到: 
      2    b    boy   6
      3    c    boy   7
也就是除了表C中的num字段

#8


select a1.num,a1.[name],a2.sex,a2.age from a1,a2,a3
where a1.num=a2.num and a3.num<>a1.num and a3.num<>a2.num

#9


楼上兄弟:
这条在表C:中只有一个记录时好用,如表C中是1,2
想得到3   c   boy   7,也就是除出1,2的资料时就出再这样的情况:
1 a boy 5
2 b boy 6
3 c boy 7
3 c boy 8
请问为什么并如何解决.

#10



SELECT A.*, B.sex, B.age
FROM (A INNER JOIN B ON A.num = B.num) LEFT JOIN C ON B.num = C.num
WHERE C.num Is Null

#11


谢谢楼上的兄弟.

#1



    问题还不在于where语句怎么写。
    你的三个表间的关系还没有交代清楚呢。还有,“表A和表B中的NUM  和表C中NUM不相等的所有记录”这句话可以理解成不同的意思。请准确描述。最好给出示例数据。

#2


确实,至少可以理解成3种意思

#3


晕了,问问题之前一定要把问题搞清楚~~~~

#4


题目确实让人费解啊,
不过应该不难,用not in 或 exists

#5


gz

#6


很乱呵,不过用Left join 应该可以了。

#7


例如:
表A: num name
      1    a
      2    b
      3    c
表B: num  sex  age
      1   boy   5
      2   boy   6
      3   boy   7

表C: num  
      1  

最终想要得到: 
      2    b    boy   6
      3    c    boy   7
也就是除了表C中的num字段

#8


select a1.num,a1.[name],a2.sex,a2.age from a1,a2,a3
where a1.num=a2.num and a3.num<>a1.num and a3.num<>a2.num

#9


楼上兄弟:
这条在表C:中只有一个记录时好用,如表C中是1,2
想得到3   c   boy   7,也就是除出1,2的资料时就出再这样的情况:
1 a boy 5
2 b boy 6
3 c boy 7
3 c boy 8
请问为什么并如何解决.

#10



SELECT A.*, B.sex, B.age
FROM (A INNER JOIN B ON A.num = B.num) LEFT JOIN C ON B.num = C.num
WHERE C.num Is Null

#11


谢谢楼上的兄弟.