2012-01-20 5 views
1

に条件として表2を必要とする。この場合、TABLE1から選択したデータに私がやりたいのmysql

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

、エラーメッセージは次のとおりです。

不明コラム:db2.table2.column1

データベース1と2の

私の設定では、ちょうどこの場合のクエリを記述する方法がわからない、正しいです。

+0

念のため、テーブルの両方が異なるデータベースにありますか? – Vinay

+0

あなたの選択した部分にtable2を追加するには、それらを調整する前にテーブルを選択する必要があります。 2つのデータベースを使用しているようです。 – Moonlight

+0

これらの回答の1つを受け入れるつもりですか?それともあなたのために働かないの?あなたは真の –

答えて

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

参照、join table on condition構文

+0

'column1'をテーブルに修飾すると、その名前が両方に存在する可能性があります。 – Karlson

+0

@Karlsonありがとう。編集されました。 – Bohemian

1

あなたはFROM句でdb2.table2をリストする必要があります。あなたはdb.table1からcolumn1をしたいと仮定:

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

そうでなければ、あなたがWHERE句でそれらを使用することはできません。

あなたが(明示的な結合と呼ばれる)join ... on構文を使用したい場合は、その後、ボヘミアンの答えを確認してください。選択する構文についての議論については

、あなたがこのクエリは、より近代的な、そして好適に使用することがわかりますExplicit vs implicit SQL joins

+0

は、それを修正し、それをより読みやすくするために、エイリアスを追加しました。 – Moonlight

+0

をtable1.column1使用することができますTABLE1とtable2の中に同じ列を持っている場合 –

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

はこれを試してみてください。

SELECT 
    db1.col1, 
    db2.col2 
FROM 
    db1.tb1 
LEFT JOIN 
    db2.tb2 ON db2.tb2.col1 = db1.tb1.col2 
関連する問題