SELECT
books.ID ,
books.BOOKNAME ,
books.EXPRESS ,
books.AUTHOR 
FROM
books
WHERE
books.ID = 
(SELECT 
borrowed_book.BOOKID 
FROM 
borrowed_book 
WHERE 
borrowed_book.ID = '1')
当后面那个SELECT语句返回的值不是一个的时候,我该怎么写这个联查语句啊,请大家帮帮忙,谢谢。

解决方案 »

  1.   

    改称in
    SELECT
    books.ID ,
    books.BOOKNAME ,
    books.EXPRESS ,
    books.AUTHOR 
    FROM
    books
    WHERE
    books.ID in
    (SELECT 
    borrowed_book.BOOKID 
    FROM 
    borrowed_book 
    WHERE 
    borrowed_book.ID = '1')
      

  2.   

    Try
    select a.id,a.bookname,a.express,a.author from books as a inner join borrowed_book as b on (a.id = b.bookid and b.id = '1');
      

  3.   

    可以用 IN, 
    JOIN
    还有=SOME 都是常见的方法,建议看一下SQL的基础《数据库系统概论(第三版)》.
        [align=center]====  ====
    [/align]
    .
    贴子分数<20:对自已的问题不予重视。
    贴子大量未结:对别人的回答不予尊重。
    .
      

  4.   

    SELECT books.ID ,books.BOOKNAME ,books.EXPRESS ,books.AUTHOR FROM books
    WHERE
    books.ID in (SELECT borrowed_book.BOOKID FROM borrowed_book WHERE borrowed_book.ID = '1')or如两表以ID做为连接
    SELECT books.ID ,books.BOOKNAME ,books.EXPRESS ,books.AUTHOR FROM books
    inner join borrowed_book 
    ON books.ID=borrowed_book.BOOKID
    WHERE borrowed_book.ID = '1'后者的效率高一些
      

  5.   

    多谢 wwwwb ,你的方法比较好。呵呵。