user(user_id,user_name)  buy(buy_id,buy_user,handle_man)
     拥护ID  用户名        购买单号 购买用户ID 负责用户ID
select * from buy 检索出来的buy_user和handle_man都是用户的ID,想把他变为用户名
SQL:select buy_id,
            buy_user_name=(select user_name from user where                            user_id=buy.buy_user),
            handle_user_name=(select user_name from user where                                        user_id=buy.handle_man)
     from buy
     where buy_id=:buy_id
出现access violation at address 1F472FB3 in module'msado15.dll'.read of address 8BEC8B5Daccess violation at address 77FCB3AD in module' ntdll.dll'.Write of address 00000000
之类的DLL出错提示,初步测试好象是加上WHERE 条件有问题,不知道怎么改?这条SQL怎么写?

解决方案 »

  1.   

    Access 数据库?Access不支持好些复合查询!
      

  2.   

    把user加上[]试试看:[user],好像是用到系统保留字了
      

  3.   

    那只是随便写上的例子,实际上我的表明不是这个。当然不会有多值呵,用的是SQL SERVER,大家可以随便建个表,把我写出来的SQL写上去就会出现这样的提示了。
      

  4.   

    我理解的你的意思是想把把select * from buy  查出来的 buy_user和 handle_man都转成用户名吧?如果是这个意思,如下:
    select a.*, b.user_name as buy_name, c.user_name as handle_name 
    from buy a, user b, user c
    where a.buy_user=b.user_id
    and a.handle_man=c.user_id
      

  5.   

    我理解的你的意思是想把把select * from buy  查出来的 buy_user和 handle_man都转成用户名吧?如果是这个意思,如下:
    select a.*, b.user_name as buy_name, c.user_name as handle_name 
    from buy a, user b, user c
    where a.buy_user=b.user_id
    and a.handle_man=c.user_id这样好象不行哦,我那buy_user和handle_man都可为空的
      

  6.   

    select a.buy_id, b.user_name as buy_name, c.user_name as handle_name 
    from buy a, user b, user c
    where a.buy_user=b.user_id
    and a.handle_man=c.user_id
    and a.buy_user is not null
    and a.buy_user<>''
    and a.handle_man is not null
    and a.handle_man<>''注意引号的用法,如果buy_user,handle_man为空的话,没有什么实际意义吧
      

  7.   

    反正大家试试就知道了
    BDE是没问题的
      

  8.   

    那就这样: 
    select a.*, b.user_name as buy_name, c.user_name as handle_name 
    from buy a, user b, user c
    where a.buy_user*=b.user_id
    and a.handle_man*=c.user_id