update frombook set discount=1 where EXISTS(select c.bookid 
from (select books.bookid from 特价商品 a inner join books b on a.isbn=b.isbn) 
as c inner join Frombook on c. bookid = Formbook.bookid where Formbook.[From]=11)消息 107,级别 16,状态 2,第 1 行
列前缀 'Formbook' 与查询中所用的表名或别名不匹配。
消息 107,级别 16,状态 3,第 1 行
列前缀 'books' 与查询中所用的表名或别名不匹配。
消息 107,级别 16,状态 2,第 1 行
列前缀 'Formbook' 与查询中所用的表名或别名不匹配。

解决方案 »

  1.   

    try--
    update 
      frombook 
    set 
      discount=1 
    where 
      EXISTS
    (
      select c.bookid 
      from 
        (select books.bookid from 特价商品 a inner join books b on a.isbn=b.isbn) as c 
      inner join 
        Frombook d
      on 
        c. bookid = d.bookid 
      where 
        d.[From]=11
    )
      

  2.   

    谢谢楼上的 回答 这个问题已经解决 和我已经明白了。。
    但是我想问一下
    update 
      frombook 
    set 
      discount=1 
    where 
      EXISTS
    (
      
    )
    的where条件 本意是frombook 里面的bookid 是不是包括EXISTS 返回的值
    不知道怎么写了。执行上面的执行结果 把frombook里面的discount里面的字段 都改成1 了。。
    这不是本意
    条件这么写 啊 
      

  3.   

    试试这个
    update 
      d 
    set 
      d.discount=1 
    from
      frombook as d,
      (select books.bookid from 特价商品 a inner join books b on a.isbn=b.isbn) as c
    where
      d.booid=c.booid
    and
      d.[From]=11
      

  4.   

    一个是
    Frombook
    一个是
    Formbook