尝试在子查询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' */
我在这里做错了什么?
答案 0 :(得分:2)
有没有理由不使用像这样的普通旧左连接:
select * from tbl1 t1 left join tbl2 t2 on t1.id = t2.id;
答案 1 :(得分:2)
SELECT *
FROM tbl1 t
LEFT JOIN
tbl2 t2
ON t2.id = t.id
AND t2.val1 = 1
答案 2 :(得分:0)
SELECT * tbl1 UNION select * from tbl2;
将产生相同的结果