如何使用公共字段在mysql中连接两个表

时间:2015-08-11 10:44:58

标签: php mysql

我有两个mysql表。即,

  1. db_post
  2. db_like
  3. // db_post

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

    // db_like

    id  ||  post_id  ||  unique_key
    
    1          2           unkey3
    

    我的问题是,如何根据表db_post中的unique_key字段混合这两个表。

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

    id  ||  name  ||  unique_key  ||  pub   ||  post_id
    
    3       dee         unkey3       demo2       {null}
    2       Rah         unkey2       demo1        2
    1       Jit         unkey1       demo        {null}
    
    id的{​​{1}}字段和db_post的{​​{1}}字段应匹配。

2 个答案:

答案 0 :(得分:2)

这需要将加入条件保留为db_unique_key = db_like.unique_key and db_like.unique_key='unkey3')

select
p.id,
p.name,
p.unique_key,
p.pub,
l.post_id
from db_post p
left join db_like l on l.unique_key = p.unique_key and l.unique_key = 'unkey3'
order by p.id desc

答案 1 :(得分:1)

LEFT JOIN列上使用unique_key,例如

select dp.id, 
       dp.name, 
       dp.unique_key, 
       dp.pub,
       dl.post_id
from db_post dp 
left join db_like dl on dp.unique_key  = dl.unique_key
order by dp.id desc;