带条件左外连接的 Mysql 子查询
尝试在子查询 FROM 子句中使用外部查询的参数。
tbl1:
| id | val1 | str1 |
| 1 | 12 | sbc |
| 2 | 22 | sds |
tbl2:
| id | val1 | str1 |
| 1 | 1 | cp |
尝试编写以下查询:
select * from
tbl1 t, (select * from tbl2 where t.id = tbl2.id and tbl2.val1 = 1) tb12;
预期输出:
| id | val1 | str1 | id | val1 | str1 |
| 1 | 12 | sbc | 1 | 1 | cp |
| 2 | 22 | sds | null | null | null |
但它失败并出现错误:
/* SQL Error (1054): Unknown column 't.id' in 'where clause' */
我在这里做错了什么?
Trying to use parameter from external query in subquery FROM clause.
tbl1:
| id | val1 | str1 |
| 1 | 12 | sbc |
| 2 | 22 | sds |
tbl2:
| id | val1 | str1 |
| 1 | 1 | cp |
Trying to write the following query:
select * from
tbl1 t, (select * from tbl2 where t.id = tbl2.id and tbl2.val1 = 1) tb12;
Expected output:
| id | val1 | str1 | id | val1 | str1 |
| 1 | 12 | sbc | 1 | 1 | cp |
| 2 | 22 | sds | null | null | null |
Yet it fails with the error:
/* SQL Error (1054): Unknown column 't.id' in 'where clause' */
What am I doing wrong here?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
有什么理由不使用普通的旧左连接,如下所示:
Is there any reason not to use plain old left join like this:
会产生相同的结果
will produce the same result