0

私は2つのテーブルを持っています:

  • キャリア
  • キャリア詳細

表 " career " にはフィールド (careerID,job_code)
が含まれます。表 "career_details" にはフィールド (id、careerID、name) が含まれます。

値を次のようにします[(1,code1),(2,code2)]--- キャリア (テーブル)
値を

[

 ('1','1','codename1'),  
   ('2','1','codename11'),  
   ('3','2','codename22'),  
   ('4','2','codename222')


]

-- キャリア詳細(表)

query(" SELECT * FROM career c LEFT JOIN career_details cd ON c.career_id=cd.career_id WHERE 1") を記述すると、結果は 4 行になりますが、必要な結果は 2 行だけです。

[(1,code1,1,1,codename1),(2,code2,3,2,codename22)]
4

2 に答える 2

0
SELECT * FROM career c LEFT JOIN career_details cd ON c.career_id=cd.career_id 
group by c.id

c.id でグループ化すると、結果セット内の c.id のエントリは 1 つだけに制限されます。

于 2013-07-18T12:32:27.413 に答える
0

左結合を記述する代わりに、内部結合を記述する必要があります

ここでも要件に応じて、キャリア データが最初に割り当てられる最初のキャリア詳細データが必要です。以下のリンクを参照してください。 http://www.sqlfiddle.com/#!2/d1c64/14

SELECT c.id,c.name as name ,cd.id as cdl_id,cd.career_id,cd.name as dtl_name FROM career_details cd  INNER JOIN careers c  ON c.id=cd.career_id
and cd.id in (select max(id) from career_details group by career_id);
于 2013-07-18T09:04:21.100 に答える