mysql查询中的一对一结果

mysql查询中的一对一结果,mysql,greatest-n-per-group,Mysql,Greatest N Per Group,我有两张桌子: 生涯 职业详细信息 表中包含careerID、job\u代码字段 表职业详细信息包含字段id、careerID、名称 让值为[1,code1,2,code2]——careertable 让这些价值观成为现实 [ ('1','1','codename1'), ('2','1','codename11'), ('3','2','codename22'), ('4','2','codename222') ] -职业稳定 现在,如果我在c.care

我有两张桌子:

生涯 职业详细信息 表中包含careerID、job\u代码字段 表职业详细信息包含字段id、careerID、名称

让值为[1,code1,2,code2]——careertable 让这些价值观成为现实

[

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


]
-职业稳定

现在,如果我在c.career\u id=cd.career\u id其中1上写查询select*FROM career c LEFT JOIN career\u details cd,那么它将给出4行结果,但我只需要结果2行,即

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

您应该编写内部联接,而不是编写左联接

同样,根据您的要求,您需要首先分配职业数据的第一个职业详细信息数据。请参考下面的链接。


Group by c.id将在结果集中限制c.id的一个条目。

是careerID还是career_id?MySQL如何知道采取哪种细节的可能重复?这似乎是每个组最大的问题。添加了一个相关的标签。事实上,有很多人,其中一些人也接受了答案。我更新了我的查询。请检查小提琴
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);
SELECT * FROM career c LEFT JOIN career_details cd ON c.career_id=cd.career_id 
group by c.id