2010-11-28 16 views
0

私は推測していることに苦しんでいるので、非常に単純な問題です。私はちょっと調べたことがありますが、今まで私が見つけた解決策のどれもが私の問題に取り組んでいませんでした。あいまいな左結合?

SELECT arrangement_ID, hva, dato 
FROM tt_arrangement LEFT JOIN (tt_vaktliste_vakt) 
ON (tt_arrangement.arrangement_ID = tt_vaktliste_vakt.arrangement_ID) 

列「arrangement_ID」はtt_arrangementとtt_vaktliste_vakt両方に存在するので、これは当然、「あいまいなエラー」を生成します。これを修正するのは簡単だと思って、次のように変更しました。

SELECT **arrangement_ID.tt_arrangement**, hva, dato 
FROM tt_arrangement LEFT JOIN (tt_vaktliste_vakt) 
ON (tt_arrangement.arrangement_ID = tt_vaktliste_vakt.arrangement_ID) 

ただし、これは「列が存在しません」というエラーが発生しました。それが私が立ち往生している場所です。 問題があるかどうかわかりませんが、SELECT *を使用すると、クエリは意図したとおりに機能します。それは本当に私が質問を使用するためのオプションではありませんが。

事前にお返事いただきありがとうございます。

+0

[tablename] [columnname] [columnname]。[tablename]ではありません。 –

+0

ハハ、ありがとう。私はあまりにも長い時間働いていると思う、コードブラインドを始めて;) –

答えて

3

プレフィックステーブル名とあいまいなカラム名:

SELECT t_arrangement.arrangement_ID, hva, dato 
FROM tt_arrangement LEFT JOIN (tt_vaktliste_vakt) 
ON (tt_arrangement.arrangement_ID = tt_vaktliste_vakt.arrangement_ID) 

ます。また、別名を使用することができます(

(HVAを前提とし、ダトは、一意の列名です)、まだあいまいな列名を接頭辞にする必要がありますエイリアス付き)

1

以下のように、テーブル名にエイリアスを付ける必要があります。

SELECT a.arrangement_ID, a.hva, a.dato 
FROM tt_arrangement AS a 
LEFT JOIN tt_vaktliste_vakt AS v 
ON (a.arrangement_ID = v.arrangement_ID) 

わからない私はどこから来ている列を知ることができないあなたのテーブル構造を知らない権利として、トップラインです。

これが役に立ちます。

+0

+1私から、ちょうど良い解決策 –

関連する問題