从表1中选择数据,但需要表2作为mysql中的条件

从表1中选择数据,但需要表2作为mysql中的条件,mysql,Mysql,我想做: select column1 from db1.table1 where db1.table1.column2 = db2.table2.column1. 在这种情况下,错误消息为: 未知列:db2.table2.column1 我对数据库1和2的设置是正确的,只是不知道在这种情况下如何编写查询 您需要在FROM子句中列出db2.table2。假设您需要db.table1中的column1: select t1.column1 from db1.table1 t1, db2.t

我想做:

 select column1
 from db1.table1
 where db1.table1.column2 = db2.table2.column1.
在这种情况下,错误消息为:

未知列:db2.table2.column1


我对数据库1和2的设置是正确的,只是不知道在这种情况下如何编写查询

您需要在
FROM
子句中列出
db2.table2
。假设您需要
db.table1
中的
column1

select t1.column1
from db1.table1 t1, db2.table2 t2
where t1.column2 = t2.column1
否则不能在
WHERE
子句中使用它们

如果您喜欢使用
连接。。。在
syntax(称为显式连接)上,检查Bohemian的答案

有关选择哪种语法的讨论,请参阅

您会注意到,此查询使用了更现代、更可取的条件连接表语法

尝试以下操作:

SELECT
    db1.col1,
    db2.col2
FROM
    db1.tb1 
LEFT JOIN
    db2.tb2 ON db2.tb2.col1 = db1.tb1.col2

为了确保两个表都在不同的数据库中?在选择部分添加表2,您需要先选择表,然后再调整它们。你似乎在使用2个数据库?你会接受其中一个答案吗?或者它们都不适合您吗?如果表1和表2中的列相同,您可以使用表1.column1,您可能希望将
column1
限定为一个表,因为名称可能同时存在于这两个表中。
select t1.column1
from db1.table1 t1
join db2.table2 t2 on t1.column2 = t2.column1
SELECT
    db1.col1,
    db2.col2
FROM
    db1.tb1 
LEFT JOIN
    db2.tb2 ON db2.tb2.col1 = db1.tb1.col2