从table1中选择数据但需要table2作为mysql中的条件

时间:2012-01-20 14:47:55

标签: mysql

我想这样做:

 select column1
 from db1.table1
 where db1.table1.column2 = db2.table2.column1.

在这种情况下,错误消息为:

  

未知列:db2.table2.column1

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

4 个答案:

答案 0 :(得分:2)

select t1.column1
from db1.table1 t1
join db2.table2 t2 on t1.column2 = t2.column1

您会注意到此查询使用了更现代,更可取的join table on condition语法

答案 1 :(得分:1)

您需要在db2.table2子句中列出FROM。假设您希望来自column1的{​​{1}}:

db.table1

否则您无法在select t1.column1 from db1.table1 t1, db2.table2 t2 where t1.column2 = t2.column1 子句中使用它们。

如果您更喜欢使用WHERE语法(称为显式连接),请检查Bohemian的答案。

有关选择哪种语法的讨论,请参阅Explicit vs implicit SQL joins

答案 2 :(得分:0)

select column1
from db1.table1, db2.table2
where db1.table1.column2  = db2.table2.column1

答案 3 :(得分:0)

试试这个:

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