【问题标题】:How to do a join on a inner join?如何对内部连接进行连接?
【发布时间】:2011-08-31 23:29:42
【问题描述】:

我有这个数据库:

table

id  fname       dphone      count_pic   dup_id  

6055903 Karla       5126xxx798  1       57  
6173767 Aaliyah     4082xxx534  4       39  
5611411 Aaliyah     4082xxx534  15      39  
5611211 Aaliyah     4082xxx534  18      39  
4234798 Abby        3057xxx974  31      16  
6166691 Walter      6178xxx280  1       74  
3375576 Walter      6178xxx280  17      74

我发现了如何像这样对其进行内部连接:

SELECT *
  FROM table t1
INNER JOIN (SELECT MIN(count_pic) AS minpic,
               MAX(count_pic) AS maxpic,
               dup_id
          FROM table
      GROUP BY dup_id) t2 ON t1.dup_id = t2.dup_id
                         AND (t1.count_pic = minpic
                           OR t1.count_pic = maxpic)

但是如果我想将这个表与另一个基于 id 的表连接起来并返回一些值,比如第二个表中的 date,

table2

    id  date

6055903 111111111
6173767 111111111
5611411 111111111

对此有何想法?

编辑:

内部连接很好,我需要在该查询之上添加table2

【问题讨论】:

  • 只是添加第二个连接? SELECT * FROM table1 JOIN table2 ON(table1.id = table2.foreign_id) JOIN table3 ON(table1.id = table3.foreign_id)

标签: php mysql join inner-join


【解决方案1】:

只需在末尾添加另一个JOIN

SELECT *
  FROM table t1
INNER JOIN (SELECT MIN(count_pic) AS minpic,
               MAX(count_pic) AS maxpic,
               dup_id
          FROM table
      GROUP BY dup_id) t2 ON t1.dup_id = t2.dup_id
                         AND (t1.count_pic = minpic
                           OR t1.count_pic = maxpic)

INNER JOIN table2 ON t1.id = table2.id -- add this 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-03
    • 2018-06-16
    • 2019-03-22
    • 2011-03-18
    • 2016-10-01
    • 1970-01-01
    相关资源
    最近更新 更多