2016-10-12 13 views
1

私が現在経験している問題は、Contact.emailが異なる場合、両方ともNULLとして表示されることです。 ANDの代わりにORを使用すると、両方の電子メールを取得できますが、異なる行にあるため、重複しています。SQL可能な異なる結果を持つ同じ列のデータを収集

私はエイリアスを割り当てる必要があると思いますが、その方法はわかりません。

SELECT Item.brought, Contact.email AS SalesContact, Contact.email AS TechContact 
FROM Customer 
LEFT JOIN Contact 
ON Item.sales_id = Contact_id 
AND Item.tech_id = Contact_id; 

私がしようとしているのは、Item.broughtを別のテーブルに格納されている2つの電子メールアドレスに関連付けることです。 どんな助言も大いに述べられます。

多くのありがとうございます。

+2

サンプルテーブルのデータ、現在の結果、および予想される結果を追加します。すべての書式付きテキスト。 – jarlh

+0

MariaDBとMySQL Workbenchを使用してSQLを実行している場合は、その違いがあります。 – EvolvedPie

+0

なぜ彼は私たちにデータを与える必要がありますか?彼が売り手であり、同時にアイテムの技術者である場合に限り、少数であるということは、彼が男に加わっていることは完全にはっきりしています。代わりに、彼は2つの連絡先に別々に参加する必要があります。これは、同じ場合も特別なケースを処理します。 –

答えて

0

あなたは同じメールを読んでいます。あなたはこのように、問い合わせして二回に参加する必要があります。

SELECT Item.brought, SC.email AS SalesContact, TC.email AS TechContact 
FROM Customer 
LEFT JOIN Contact SC 
ON Item.sales_id = SC.Contact_id 
LEFT JOIN Contact TC 
ON Item.tech_id = TC.Contact_id; 

説明:あなたが販売している販売にもない技術を想像することができますので、あなたは、必ずしも同じではありません2つのContactレコードを、必要とします技術者でもない。だからあなたはItem.sales_idItem.tech_idを使っている技術者を使ってセールスに参加しています。

+0

すばらしい、ありがとう!! – EvolvedPie

関連する問題