我有一个数据库,允许用户拥有多个电子邮件地址。我想查询数据库以获取该客户的所有作业实例。每份工作都会返回两次,每封电子邮件一份。
这是我的问题:
SELECT customers.first_name, customers.last_name, emails.email, services.title, services.description, jobs.status, jobs.job_id
FROM customers
INNER JOIN emails ON customers.user_id=emails.user_id
INNER JOIN jobs ON customers.user_id=jobs.customer_id
INNER JOIN services ON jobs.service_id=services.service_id;
它返回的内容如下:
我想仅使用第一封电子邮件返回结果。对于用户存档的每个电子邮件地址,不应重复该行。
如何做到这一点?
答案 0 :(得分:3)
您可以在SQL上使用GROUP BY
来获取如下的唯一列值。
SELECT customers.first_name, customers.last_name, emails.email, services.title, services.description, jobs.status
FROM customers
INNER JOIN emails ON customers.user_id=emails.user_id
INNER JOIN jobs ON customers.user_id=jobs.customer_id
INNER JOIN services ON jobs.service_id=services.service_id;
GROUP BY jobs.job_id;