Mysql 基于一个不同字段从联接表中选择数据,但返回所有其他列

Mysql 基于一个不同字段从联接表中选择数据,但返回所有其他列,mysql,mysql-workbench,Mysql,Mysql Workbench,我已经看过很多以前的问题,但似乎找不到一个符合我的问题 我当前的站点在数据库中的不同表中存储了客户详细信息 我已成功地基于Firstname和Lastname通过以下方式连接了表: Select * FROM ps_customer INNER JOIN ps_address ON ps_address.Firstname = ps_customer.Firstname AND ps_address.Lastname = ps_customer.Lastna

我已经看过很多以前的问题,但似乎找不到一个符合我的问题

我当前的站点在数据库中的不同表中存储了客户详细信息

我已成功地基于Firstname和Lastname通过以下方式连接了表:

Select * 
FROM ps_customer
INNER JOIN ps_address
      ON ps_address.Firstname = ps_customer.Firstname AND   
         ps_address.Lastname = ps_customer.Lastname 
但是,结果包含相同客户的重复电子邮件地址。我想做的是从连接的表中返回所有列,但只返回不同/唯一的电子邮件地址?有没有可以执行此操作的命令

ps我对sql非常陌生,所以为非技术性语言道歉

我想在这张图片中做一些类似的事情

使用DISTINCT:


我不知道您到底要选择哪一列,但上面的模式应该是其中一种方式。

请阅读如果客户有超过1个邮资,您需要使用聚合函数(如日期/时间上的最小值或最大值)告诉查询要选择哪一行,否则它将同时选择这两行,您将得到重复的签名!这很有效,但我可能还没有很清楚地提出我的问题。我想要的是从两个连接的表中选择所有字段,但每个电子邮件只有一行数据,因为同一客户有重复的电子邮件,他们可能输入了不同的邮资address@AndyL我认为我的查询不会根据您的新数据进行更改。再次感谢。但是,是否有一种方法可以从联接的表中选择所有列字段,但仅忽略仅在一列(如电子邮件)中存在重复的行?请向我们展示一些数据。我可以想象你可能想到的几个结果集。
SELECT DISTINCT
    pc.ID,
    pc.Firstname,
    pc.Lastname,
    pa.Address1,
    pa.Address2,
    pa.Zip,
    pc.email
FROM ps_customer pc
INNER JOIN ps_address pa
    ON pa.Firstname = pc.Firstname AND
       pa.Lastname = pc.Lastname;