1

残念ながら、私のキャリアのほとんどで、私は 4 次元と呼ばれる奇妙なフランスのデータベースを使用しています。また、MySQL とはまったく異なる動作をしました。とても簡単な質問かもしれませんが、ご容赦ください。

次のようなクエリがあります。

SELECT c.id, p.last_name, e.full_name, l.Current_step, l.Current_Step_date,  
FROM customer as c, lesson as l , Employee as e 
WHERE l.Prospect_ID =c.id
AND c.ID_ofProducer= e.id  
AND last_name = 'Smith' 

私は3つのレコードを取り戻しています。しかし、それらはすべて同じです。

ID      Last_name     Full_name     Current_Step      Current_Step_date
61245   Smith         Jim Jones     Registered        2013-04-14
61245   Smith         Jim Jones     Registered        2013-04-14
61245   Smith         Jim Jones     Registered        2013-04-14

私は戻ってくることを期待してい61245 Smithました。

しかし; 私はそれが3回エコーされるとは思っていませんでした。

誰かが私が一体何を間違えたのか/何をすべきだったのかを明らかにすることはできますか?

4

2 に答える 2

1

他の分野ではおそらく違いがあります。それらを見るには、これはうまくいくはずです:

SELECT * 
FROM customer as c, lesson as l , Employee as e 
WHERE l.Prospect_ID =c.id
AND c.ID_ofProducer= e.id  
AND last_name = 'Smith' 

違いがない場合は、1 つ以上のテーブルに重複があります。

このような重複を排除したい場合は、次のdistinctキーワードを使用して行うことができます。

SELECT distinct c.id, p.last_name, e.full_name, l.Current_step, l.Current_Step_date
FROM customer as c, lesson as l , Employee as e 
WHERE l.Prospect_ID =c.id
AND c.ID_ofProducer= e.id  
AND last_name = 'Smith' 

それがサポートされていない場合は、次の方法で同じことができますgroup by

SELECT c.id, p.last_name, e.full_name, l.Current_step, l.Current_Step_date
FROM customer as c, lesson as l , Employee as e 
WHERE l.Prospect_ID =c.id
AND c.ID_ofProducer= e.id  
AND last_name = 'Smith' 
group by c.id, p.last_name, e.full_name, l.Current_step, l.Current_Step_date
于 2013-05-30T20:00:24.793 に答える