php
  • sql
  • 2012-03-29 19 views 0 likes 
    0

    我尝试从我的数据库检索数据与下面的SQL。SQL内部连接 ​​- 检索错误的ID

    select mc.ADD_DATE,mc.MOVIE_ID,mc.COMMENT,m.ID,m.NAME 
    from MOVIE_COMMENT as mc 
    INNER Join MOVIE as m ON m.ID=mc.MOVIE_ID 
    WHERE user_ID = " . $getUser->id . " 
        and STAT='onayli' 
    ORDER BY mc.ADD_DATE DESC LIMIT " . $commentCount . " 
    

    我使用内部联接,因为我也从其他表中检索电影名称。

    mc = MOVIE_COMMENT table 
    m = MOVIE Table 
    

    我的问题是,当我尝试检索mc ids,它给了我电影id为什么?

    +0

    'select mc.ADD_DATE,mc.MOVIE_ID,mc.COMMENT,m.ID,m.NAME',是不是应该有一个MC.IDS或类似的东西? – dfb 2012-03-29 07:41:49

    +0

    请注意,如果您在此添加'mc.ID',则不会返回'm.ID'。如果你需要使用别名,像这样:'... mc.ID AS movie_comment_ID,m.ID AS movie_ID ...' – 2012-03-29 07:45:22

    回答

    3

    如果您想要Movie_Comment ID,则需要返回mc.ID字段。

    SELECT mc.ID as Movie_Comment_ID, mc.ADD_DATE, mc.MOVIE_ID, mc.COMMENT, m.ID, m.NAME 
    FROM MOVIE_COMMENT as mc 
    INNER Join 
    MOVIE as m 
    ON m.ID = mc.MOVIE_ID 
    
    +0

    这就是我想要的! :) – user1277467 2012-03-29 08:54:25

    0

    您是否试图在您的select子句中用mc.ID代替m.ID

    1

    您在您的选择清单中有m.ID。你可能想要mc.ID

    +0

    是的,当我的广告mc.ID它给我m.ID:s – user1277467 2012-03-29 07:42:03

    +0

    尝试把两个'mc.ID as MCID'和'm.ID as MID'在同一个select子句中查看结果是否有差异。 – Kosta 2012-03-29 07:45:50

    0

    您正在将MOVIE_COMMENT表中的ID作为mc.MOVIE_ID返回。 因此,当您尝试访问那里(例如,来自PHP)时,您需要访问MOVIE_ID。 询问ID将返回m.ID,MOVIE表中的ID。

    相关问题