多对多关系查询

时间:2011-10-21 22:08:22

标签: php mysql sql

我对很多关系表以及随之而来的代码感到困惑。

我有table1

id, username

table2

id, votes_up, votes_down

辅助表(htable):

vu, vd, adsid

我想要发生的是,当广告被投票或投票时,此投票不适用于所有广告。

我尝试选择数据:

mysql_query("SELECT * 
             FROM dbo.tab2 
             INNER JOIN dbo.htable 
             WHERE tab2.votes_up = htable.vu 
                AND htable.votes_down = htable.vd 
             INNER JOIN dbo.tab1 
             WHERE htable.adsID = table1.ID");

我的插入尝试:

mysql_query("INSERT INTO dbo.htable (vu, vd, adsid)  
             VALUES 
             (SELECT FROM dbo.tab2.votes_up, dbo.tab2.votes_down , dbo.tab1.id)");

我的问题:这两个查询是否正确?如果没有,我该如何解决?什么是更新查询?

1 个答案:

答案 0 :(得分:0)

我真的不明白你的问题,但你的SQL查询错了。他们可能应该是这样的:

SELECT
    *
FROM
    dbo.tab2 as tab2
    INNER JOIN dbo.htable as htable
        ON tab2.votes_up = htable.vu
        AND tab2.votes_down = htable.vd
    INNER JOIN dbo.tab1 as tab1
        ON htable.adsID = tab1.ID

INSERT INTO dbo.htable (vu, vd, adsID)
    SELECT
        votes_up, votes_down, ID
    FROM
        dbo.tab2