delete Talk  where Talk.Uname1 = (select Users.UserName from Users where Users.Online=0)
这个语句写法不对删除一张表中的记录 关系是:查询出另外一张表中其中一个字段写法不知道怎么写有写过这种的没

解决方案 »

  1.   

    可以,只要能保证select Users.UserName from Users where Users.Online=0返回的是一条记录
    还可以这样
    delete Talk  where Talk.Uname1 in (select Users.UserName from Users where Users.Online=0) 
      

  2.   

    如果查询有多条记录请用:
    delete Talk  where Talk.Uname1 in (select Users.UserName from Users where Users.Online=0) 或者
    如果查询只有1条记录请用:
    delete Talk  where Talk.Uname1 = (select top 1 Users.UserName from Users where Users.Online=0) 
      

  3.   


    delete from Talk  where Talk.Uname1 in (select Users.UserName from Users where Users.Online=0) 
      

  4.   

    select top 1 UserName from Users where Online=0 
    是查出 UserName 所有记录的第一条记录
    select top 2 UserName from Users where Online=0 
    是查出 UserName 所有记录的前面两条记录
     但我想要的是 只要查出来的第2条记录,而不是 前面两条记录
      

  5.   

    你那个不对可能是因为后面查询出来的不是一个字段应改是查询出来了多个
    所以应该这样写delete from talk where uname1 in (select username from users where users.online=0)
      

  6.   

    SQL code
    delete from Talk  where Talk.Uname1 in (select Users.UserName from Users where Users.Online=0)