如何加入两个mysql表

时间:2015-08-08 06:14:08

标签: php mysql

我有两个mysql表。即,

  1. db_post
  2. db_like
  3. // db_post

        <form ng-submit="preview(pre)" name="form" novalidate>
    
    
        <input type="hidden" ng-model="item.name" name='pre.name' value='{{item.name}}'ng-show="item.name==product.name">
    
        <input type="hidden" ng-model="item.sku" name='pre.sku' value='{{item.sku}}'ng-show="item.name==product.name">
    
        <input type="hidden" ng-model="item.price" name='pre.price' value='{{item.price}}'ng-show="item.name==product.name">
    
        <input ng-model="item.quantity" name='pre.quantity' value='{{item.quantity}}'ng-show="item.name==product.name"> // After changing the quantity then by pressing tab or enter the data have to submit
    
        </form>
    
        <pre>form = {{pre | json}}</pre> // have to show all the values which we giving in the form
    

    // db_like

    id  ||  name  ||  username  ||  unique_key  ||  pub
    
    1       Jit        jit11         unkey1         demo
    2       Rah        rah11         unkey2         demo1
    3       dee        dee11         unkey3         demo2
    

    我的问题是,如何根据表id || post_id || unique_key 1 2 unkey3 中的unique_key字段混合这两个表。

    //输出应如下所示。 (WHERE unique_key ='unkey3')

    db_post

3 个答案:

答案 0 :(得分:2)

我不明白为什么@tango给出的答案已被接受,查询没有给出欲望输出,它返回:

id  ||  name  ||  unique_key  ||  id
3       dee       unkey3          1

事实上,我不知道如何通过一个连接加入这两个表来获得你在问题中写的输出。

使用unique_key列使用表格加入,如下所示:

select db_post.id, db_post.name, db_post.unique_key, db_post.pub
from db_post
left join db_like on db_post.unique_key = db_like.unique_key
where db_post.unique_key = 'unkey3';

并获得所需输出的第一行:

id  ||  name  ||  unique_key  ||  pub
3       dee       unkey3          demo2

使用db_post.id = db_like.post_id加入两个表:

select db_post.id, db_post.name, db_like.unique_key, db_post.pub
from db_post
left join db_like on db_post.id = db_like.post_id
where db_like.unique_key = 'unkey3';

并获得所需输出的第二行:

id  ||  name  ||  unique_key  ||  pub
2       Rah       unkey3          demo1

要获得这两行,您必须使用union

select db_post.id, db_post.name, db_post.unique_key, db_post.pub
from db_post
left join db_like on db_post.unique_key = db_like.unique_key
where db_post.unique_key = 'unkey3'
union
select db_post.id, db_post.name, db_like.unique_key, db_post.pub
from db_post
left join db_like on db_post.id = db_like.post_id
where db_like.unique_key = 'unkey3';

答案 1 :(得分:1)

根据我的理解,你要求SQL解决上述问题。如果是这种情况,那么下面将是两个表之间的连接。

select p.id, p.name, p.unique_key, l.id
from db_post p
left outer join db_like l on
p.unique_key = l.unique_key
where p.unique_key='unkey3'

如果我的评论满足您的问题,请将其标记为正确的答案,以便将来帮助其他读者。

答案 2 :(得分:0)

使用此代码连接两个表

select a.id, a.name, a.unique_key
from db_post a, db_like b WHERE
a.unique_key = b.unique_key AND a.unique_key='unkey3' GROUP BY a.unique_key