select 
a,b,c,name,series,type,area into tem11 
from tem1,list1,list2,list3 
where num1=a and num2=b and num3=c'
//表的归属:
//a,b,c-tem1
//name,num1-list1
//series,num2-list2
//typt,area,um3-list3可以运行,但是结果却只是一部分,举个例子,如果a列有多个值,最后的结果也应该是多个值,但实际的情况却是a列所有行的值都是一样的,也就是只搜索出来了一部分数据。
原来运行是正确的,可突然出了问题,不明白是为什么。

解决方案 »

  1.   

    在SQL语句中写明哪个字段是哪个表的?
      

  2.   

    select 
    teml.a,teml.b,teml.c,list1.name,list2.series,list3.type,list3.area into tem11 
    from tem1,list1,list2,list3 
    where list1.num1=teml.a and list2.num2=teml.b and list3.um3=teml.c
      

  3.   

    'num1=a and num2=b and num3=c',
    是显示同时满足三个条件的数据
      

  4.   

    我只是想根据a,b,c的值找出对应的name,series,type,area,并没有想过滤数据啊?难道where语句有错误么?
      

  5.   

    如果a列所有行的值都是一样的,那么返回记录数的决定因素就是num2=b and num3=c了....楼主说的太费解了
      

  6.   

    应该使用out join 才能返回希望的结果
      

  7.   

    不要用 from tem1,list1,list2,list3 用 Left Join 连接:
    Select Tem1.a,Tem1.b,Tem1.c,List1.Name,
    List1.Name,List2.Series,List3.Type,List3.Area
    From Tem1 Left Join List1 On Tem1.a = List1.Num1
    Left Join List2 On Tem1.b = List2.Num2 
    Left Join List3 On Tem1.c = List3.Num3
      

  8.   

    out join?
    怎样用?可以详细一点说说么?多谢!
      

  9.   

    不行啊,tem1和tem2,tem3不在一个库。
      

  10.   

    这样说吧,如果我用
    select 
    a,b,c,name into tem11 
    from tem1,list1
    where num1=a'
    这样总没有问题吧,可是呢,却是死循环,数据库膨胀到几个G,没办法只好重新启动。
    问题在哪儿呢?
      

  11.   

    发现问题了,不是程序的问题,是数据库的问题。
    数据是从access97拷到access2000的,问题在于:
    即使我手动在表中查找num1的值,明明看到有,却查不到。
    这是为什么呢?