我有2张 table : table1 +-----------------+------------+--------+-------+-----------+--------- + | Field | Type | Null | Key | Default | Extra | |-----------------+------------+--------+-------+-----------+--------- | | id | binary(16) | NO | | <null> | | +-----------------+------------+--------+-------+-----------+---------+
table2 +-----------------+------------+--------+-------+-----------+---------+ | Field | Type | Null | Key | Default | Extra | |-----------------+------------+--------+-------+-----------+--------- | | id | binary(16) | NO | | <null> | | +-----------------+------------+--------+-------+-----------+---------+
为什么这个查询有效(并从table1中检索所有记录)? select * from table1 where id in (select table1.id from table2);
如果我只这样做: select table1.id from table2
MySQL抱怨未知列 .
1 回答
该表可以在子查询中引用为
table1
,因为它已在外部查询中被引用,除非在外部查询中引用了表,该引用对子查询不可用,请参阅此示例:查看官方文档here .
问候,
詹姆士