代码之家  ›  专栏  ›  技术社区  ›  special0ne

在另一个sql语句中重用资源

  •  0
  • special0ne  · 技术社区  · 15 年前

    我在mysql服务器上使用php,对所有sql都很陌生,我有一个问题: 我有个问题:

    $book_copy_user =  "SELECT * FROM copy_book " .
                       "JOIN copy_user_own " .
                       "ON copy_book.copy_id = copy_user_own.copy_id " .
                       "WHERE copy_user_own.user_id=1";
    
    $res1 =mysql_query($sql1) or die (mysql_error());
    

    它返回的结果是

    [{"copy_id":"1","book_id":"1","user_id":"1"},
    {"copy_id":"2","book_id":"2","user_id":"1"},
    {"copy_id":"3","book_id":"3","user_id":"1"},
    {"copy_id":"4","book_id":"4","user_id":"1"}]
    

    我想用where子句对结果执行3个不同的select,但是当尝试这样做时,它告诉我有更多的一列。

    我的问题是: 有没有方法可以使用select结果并对其应用select? 如果是,我如何与选择结果中的字段关联?

    请提供代码示例

    谢谢你们,你们都是圣徒:)

    2 回复  |  直到 15 年前
        1
  •  1
  •   soulmerge    15 年前

    您可以将数据选择到 temporary table 并对该表执行更多查询。

    CREATE TEMPORARY TABLE temp_table SELECT ...
    

    但我认为最好是你把你的实际问题公布出来,很可能会有更好的解决方案。

        2
  •  0
  •   nothrow    15 年前
    SELECT * FROM (SELECT * FROM copy_book JOIN copy_user_own ON copy_book.copy_id = copy_user_own.copy_id WHERE copy_user_own.user_id=1) WHERE copy_id = 4
    

    虽然我不确定它是否能在mysql中工作。

    不,在运行select之后,不能对它应用另一个。