加入3个表两个有主键,第三个有两个外键

时间:2014-09-22 10:27:57

标签: php mysql sql join

我有三张桌子A,B,C,

表A有primary_key a.id_attr,其他列是a.id_attr_group。

表B有一个主键b.id_prod_attr,其他列是b.id_prod

表C

第三个也是最后一个是c.id_attr和c.id_prod_attr两个键的组合 在表c中,它们可以是两个表中具有2-3个相同行的多个条目。

我希望获得满足条件a.id_attr_group = 2和b.id_prod = 1的唯一行以及表C中的两个条件匹配[组合] 我已经尝试了内连接,LEFT OUTER JOIN子查询,但没有用,无法得到确切的结果。

如果有人可以帮助我,请提前致谢?

2 个答案:

答案 0 :(得分:1)

等等,你有

A

id_attr [PK]
id_attr_group [UNIQUE](推测)

id_prod_attr [PK]
id_prod [UNIQUE](推测)

C

#id_attr [来自A的FK]
#id_prod_attr [来自B的FK]

然后我不确定你要做什么。

你不能这么做吗

SELECT *
FROM C INNER JOIN B ON B.id_prod_attr = C.id_prod_attr
INNER JOIN A ON A.id_attr = C.id_attr
在哪里A.id_attr_group = 2和B.id_prod = 1

答案 1 :(得分:0)

<Title ref="111111">
        <Events>
            <Event type="change"></Event>
        </Events>
        <tag1>John</tag1>
        <tag2>A.</tag2>
        <tag3>Smith</tag3>
    </Title>
        
--------------------------------------------------------------------------------
<Title ref="333333">
        <Events>
            <Event type="change"></Event>
        </Events>
        <tag1>Julie</tag1>
        <tag2>A.</tag2>
        <tag3>Moore</tag3>
    </Title>
        
--------------------------------------------------------------------------------

您要联接的3个表分别是select * from HomeLoan -- this table has the foreign keys inner join Home on Home.homeNumber = HomeLoan.homeNumber inner join HomeOwner on HomeOwner.ownerNID = HomeLoan.ownerNID --3 table join HomeLoanHome