连接mysql表与其他表的不同值



我在使用的数据库上遇到了一个问题。我有一个咨询表,它可能持有重复的值,但他们是一个注册号码,这是唯一的,可以用来获取他们。然而,我想从cases_counsel表加入"第一"。与案例顾问表中该列相匹配的顾问表的唯一值。

我想列出属于特定律师的案例,使用registrment_number作为cp_cases_counsel表上的advis_id。这意味着我只想选择一个不同的counsel值,然后用它来连接cp_cases_counsel表,并返回此类表的计数。然而,我总是收到副本。这是我尝试的mysql查询

SELECT T.suitno, T.counsel_id, COUNT(*) as total from cp_cases_counsel T
INNER JOIN (SELECT
enrolment_number as id, MIN(counsel)
FROM
cp_counsel
GROUP BY
enrolment_number
) A
ON A.id = T.counsel_id
GROUP BY T.suitno, T.counsel_id

SELECT enrolment_number as id, MIN(counsel) as counsel, COUNT(*) as total FROM cp_counsel
JOIN cp_cases_counsel ON cp_cases_counsel.counsel_id = cp_counsel.enrolment_number
GROUP BY enrolment_number

对于第二个查询,它连接了两次,我得到了我应该得到的两倍。

您想要在结果中的列是cp_counsel中的councel(实际上只有其所有值中的一个)和cp_cases_counsel中的counsel_id,因此您必须按它们分组并选择它们:

SELECT a.counsel, t.counsel_id, COUNT(*) AS total 
FROM cp_cases_counsel t
INNER JOIN (
SELECT enrolment_number, MIN(counsel) AS counsel
FROM cp_counsel
GROUP BY enrolment_number
) a ON a.enrolment_number = t.counsel_id
GROUP BY a.counsel, t.counsel_id;

最新更新