在 SQL 中使用 JOIN 时如何使用引用多个 ID
How to use refer to multiple id's when using JOINs in SQL
我尝试显示员工提供的评论数和他收到的评论数。我尝试做这样的事情,但在我的输出中 table (3) 我收到了不正确的数据。我相信这是由于错误的引用而发生的:
pr.reviewer_id = e.employee_id
但是,如果我这样引用它:
pr.employee_id = e.employee_id
那么 nr_of_reviews_receieved
是正确的,而 nr_of_reviews_posted
不是,如果我把它改回去,反之亦然。因此,我需要在一种情况下使用一个参考,在另一种情况下使用不同的参考,但都在一个查询中。
SELECT
e.employee_id,
CONCAT_WS(' ',employee_first_name, employee_last_name) AS full_name,
COUNT(pr.reviewer_id) AS nr_of_reviews_posted,
COUNT(pr.employee_id) AS nr_of_reviews_received
FROM
employee AS e
LEFT JOIN
performance_review AS pr ON pr.reviewer_id = e.employee_id
GROUP BY
employee_first_name, employee_last_name, e.employee_id
您必须对 table 进行两次采样,然后每次都加入 table
例如:
SELECT
e.employee_id,
CONCAT_WS(' ',employee_first_name, employee_last_name) AS full_name,
COUNT(pr.reviewer_id) AS nr_of_reviews_posted,
COUNT(pr2.employee_id) AS nr_of_reviews_received
FROM
employee AS e
LEFT JOIN
performance_review AS pr ON pr.reviewer_id = e.employee_id
LEFT JOIN
performance_review AS pr2 ON pr2.employee_id = e.employee_id
GROUP BY
Necessary columns ...
我尝试显示员工提供的评论数和他收到的评论数。我尝试做这样的事情,但在我的输出中 table (3) 我收到了不正确的数据。我相信这是由于错误的引用而发生的:
pr.reviewer_id = e.employee_id
但是,如果我这样引用它:
pr.employee_id = e.employee_id
那么 nr_of_reviews_receieved
是正确的,而 nr_of_reviews_posted
不是,如果我把它改回去,反之亦然。因此,我需要在一种情况下使用一个参考,在另一种情况下使用不同的参考,但都在一个查询中。
SELECT
e.employee_id,
CONCAT_WS(' ',employee_first_name, employee_last_name) AS full_name,
COUNT(pr.reviewer_id) AS nr_of_reviews_posted,
COUNT(pr.employee_id) AS nr_of_reviews_received
FROM
employee AS e
LEFT JOIN
performance_review AS pr ON pr.reviewer_id = e.employee_id
GROUP BY
employee_first_name, employee_last_name, e.employee_id
您必须对 table 进行两次采样,然后每次都加入 table 例如:
SELECT
e.employee_id,
CONCAT_WS(' ',employee_first_name, employee_last_name) AS full_name,
COUNT(pr.reviewer_id) AS nr_of_reviews_posted,
COUNT(pr2.employee_id) AS nr_of_reviews_received
FROM
employee AS e
LEFT JOIN
performance_review AS pr ON pr.reviewer_id = e.employee_id
LEFT JOIN
performance_review AS pr2 ON pr2.employee_id = e.employee_id
GROUP BY
Necessary columns ...