加入 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;
我在使用的数据库中遇到问题。我有一个 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;