Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да направя пълно външно съединяване, за да комбинирам две таблици в mysql?

За да направите FULL OUTER JOIN можете направи LEFT OUTER JOIN и UNION с RIGHT OUTER JOIN (при условие, че MySql все още не поддържа FULL OUTER JOIN ):

select * from A as a
    left outer join B as b on a.col = b.col
union
select * from A as a
    right outer join B as b on a.col = b.col

Имайте предвид, че можете да използвате подзаявки за A и B - което трябва да работи с вашите заявки. Във вашия случай:

select * from (SELECT * FROM t1) as a
    left outer join (SELECT * FROM t2) as b on a._tid = b._tid
union
select * from (SELECT * FROM t1) as a
    right outer join (SELECT * FROM t2) as b on a._tid = b._tid

С резултат равен на (при условие, че не съм направил грешка при копиране и поставяне на вашите данни):

+------+-------+------------+----------+------+-------+------------+----------+
| _id  | _tid  | _dt        | _advance | _id  | _tid  | _dt        | _advartn |
+------+-------+------------+----------+------+-------+------------+----------+
|   17 | hjg   | 2012-04-18 |     2151 | NULL | NULL  | NULL       |     NULL |
|   22 | RKT01 | 2012-04-10 |     2098 | NULL | NULL  | NULL       |     NULL |
|   14 | RKT04 | 2012-04-18 |     1511 |    8 | RKT04 | 2012-04-20 |      150 |
|   16 | RKT09 | 2012-04-09 |      250 | NULL | NULL  | NULL       |     NULL |
|   15 | RKT10 | 2012-04-17 |     1313 | NULL | NULL  | NULL       |     NULL |
|    8 | RKT21 | 2012-04-03 |     1321 | NULL | NULL  | NULL       |     NULL |
|   19 | RKT31 | 2012-04-26 |     2512 | NULL | NULL  | NULL       |     NULL |
|   20 | RKT33 | 2012-04-10 |     2250 | NULL | NULL  | NULL       |     NULL |
|   25 | T01   | 2012-04-11 |     2500 | NULL | NULL  | NULL       |     NULL |
| NULL | NULL  | NULL       |     NULL |    9 | RKT02 | 2012-04-10 |     2500 |
+------+-------+------------+----------+------+-------+------------+----------+


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Най-добрият начин да се справите с датата и часа при съхраняване на записи за търсачка в MySQL?

  2. изключение с нулев указател при опит за достъп до DatabaseHelper в копирана база данни от активи към data\data\

  3. Клаузата FROM е необходима във всеки оператор SELECT

  4. MySQL:Пребройте уникални двойки стойности в редове

  5. Как да подобрим производителността на заявките в Django администраторско търсене на свързани полета (MySQL)