加入 mysql table 与另一个 table 不同的价值

Join mysql table with distinct value from another table

我在使用的数据库中遇到问题。我有一个 table 的律师,他们可能持有重复的值,但他们是一个注册编号,该编号是唯一的,可用于获取它们。但是,我想从 cases_counsel table 加入律师 table 的“第一个”唯一值,该值与案例律师 table.[=15 的该列相匹配=]

我想使用 enrolment_number 作为 cp_cases_counsel table 上的 counsel_id 列出属于特定律师的案件。这意味着我只想选择一个不同的值的顾问,然后用它来加入 cp_cases_counsel table 以及 return 这样的计数。 但是,我不断收到重复项。这是我试过的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 他们分组:

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;