MySQL中的两步左连接

MySQL中的两步左连接,mysql,sql,left-join,Mysql,Sql,Left Join,我正试着左键连接两张桌子。表1(tb1)如下所示: 表2(tb2)如下所示: 我想首先使用ID左键连接两个表。对于表2中ID为空的记录,我想使用name作为键 我知道我可以先在tb1.ID=tb2.ID和tb1.DATE上加入表1, 使用方法createtable my_table选择ascreatinganewtable,然后为新表再次执行左连接。问题是我在表1和表2中有数千条记录。即使当我试图使用ID为第一个连接创建一个新表时,SQL Workbench也会给我一个错误代码,表示连接丢失 c

我正试着左键连接两张桌子。表1(tb1)如下所示:

表2(tb2)如下所示:

我想首先使用
ID
左键连接两个表。对于表2中
ID
为空的记录,我想使用
name
作为键

我知道我可以先在
tb1.ID=tb2.ID
tb1.DATE
上加入表1, 使用方法
createtable my_table选择as
creatinganewtable,然后为新表再次执行左连接。问题是我在表1和表2中有数千条记录。即使当我试图使用
ID
为第一个连接创建一个新表时,SQL Workbench也会给我一个错误代码,表示连接丢失


create view my_view
将解决连接问题。但我想知道我如何才能做到两步连接的观点?提前谢谢。

你在找这样的东西吗

SELECT *
  FROM table1 t1 LEFT JOIN table2 t2
    ON t1.date = t2.date
   AND (t1.id = t2.id OR (t1.id IS NULL AND t1.name = t2.name));
样本输出:

+------------+------+--------+------------+------+--------+-------+
| DATE       | ID   | NAME   | DATE       | ID   | NAME   | Sales |
+------------+------+--------+------------+------+--------+-------+
| 2007-09-01 | 1    | Apple  | 2007-09-01 |    1 | Apple  |   200 |
| 2007-10-01 | 2    | Pear   | 2007-10-01 |    2 | Pear   |   100 |
| 2007-11-01 | 3    | Banana | 2007-11-01 |    3 | Banana |   300 |
| 2007-12-01 | NULL | Cherry | 2007-12-01 |    4 | Cherry |   500 |
| 2008-01-01 | 11   | Kiwi   | NULL       | NULL | NULL   |  NULL |
+------------+------+--------+------------+------+--------+-------+

下面是一个演示

发布您的sqlquery@Strawberry想解释一下吗?不,我错了,谢谢。这正是我想要的。
SELECT *
  FROM table1 t1 LEFT JOIN table2 t2
    ON t1.date = t2.date
   AND (t1.id = t2.id OR (t1.id IS NULL AND t1.name = t2.name));
+------------+------+--------+------------+------+--------+-------+
| DATE       | ID   | NAME   | DATE       | ID   | NAME   | Sales |
+------------+------+--------+------------+------+--------+-------+
| 2007-09-01 | 1    | Apple  | 2007-09-01 |    1 | Apple  |   200 |
| 2007-10-01 | 2    | Pear   | 2007-10-01 |    2 | Pear   |   100 |
| 2007-11-01 | 3    | Banana | 2007-11-01 |    3 | Banana |   300 |
| 2007-12-01 | NULL | Cherry | 2007-12-01 |    4 | Cherry |   500 |
| 2008-01-01 | 11   | Kiwi   | NULL       | NULL | NULL   |  NULL |
+------------+------+--------+------------+------+--------+-------+