Как сделать соединение на внутреннем соединении? - PullRequest
1 голос
/ 01 сентября 2011

У меня есть эта база данных:

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

Есть какие-нибудь идеи по этому поводу?

edit:

Внутреннее соединение в порядке, мне нужно добавить table2 поверх этого запроса

1 Ответ

0 голосов
/ 01 сентября 2011

Просто добавьте еще 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 
...