MySQL LIMIT结果与INNER JOIN有超过2个表

时间:2014-09-10 18:02:51

标签: php mysql sql database inner-join

我有一个数据库,允许用户拥有多个电子邮件地址。我想查询数据库以获取该客户的所有作业实例。每份工作都会返回两次,每封电子邮件一份。

这是我的问题:

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;

它返回的内容如下:

database

我想仅使用第一封电子邮件返回结果。对于用户存档的每个电子邮件地址,不应重复该行。

如何做到这一点?

1 个答案:

答案 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;