如何使用Join in mySql添加三行并保留在第三列行中

时间:2016-07-15 05:35:37

标签: mysql join

表1:

CREATE TABLE Persons
(
    PersonID int,
    LastName varchar(255),
    FirstName varchar(255),
    Address varchar(255),
    City varchar(255)
); 

INSERT INTO Persons VALUES (1, 'Kumar', 'Anil', 'JP NAGAR','BANGLORE');
INSERT INTO Persons VALUES (2, 'Kumar', 'Sunil', 'LAXMI NAGAR','Delhi');

数据:

Personid   LastName   irstName  Address        City
'1'        'Kumar'   'Anil'     'JP NAGAR'     'BANGLORE'
'2'        'Kumar'   'Sunil'    'LAXMI NAGAR'  'Delhi'

表2:

CREATE TABLE PERSON_DETAIL (
    userid int ,
    email VARCHAR(80) ,
    PersonID int,
    displayname VARCHAR(50)
)

INSERT INTO PERSON_DETAIL VALUES (11, 'a@gmail.com', 1, 'AK');
INSERT INTO PERSON_DETAIL VALUES (12, 's@gmail.com', 2, 'SK'); 

数据:

userid  email          PersonId displayname 
'11'    'a@gmail.com'  '1'      'AK'
'12'    's@gmail.com'  '2'      'SK'

我想要像这样加入以便它给出这样的输出:

PersonId  lastnmae   firstname  combineddata
1         Kumar      Anil       a@gmail.com_JpNAGAR_BANGLORE 
2         Kumar      Sunil      s@gmail.com_LaxmiNagar_Delhi

请帮助我如何加入,以便我给出欲望输出 我尝试过内连接但无法获得输出。

3 个答案:

答案 0 :(得分:1)

简单JOIN并连接字符串:

SQL Server

SELECT PE.PersonID, 
       PE.Lastname, 
       PE.FirstName,
       PD.email + '_' + PE.Address + '_' + PE.City AS combineddata
FROM Persons PE
JOIN PERSON_DETAIL PD ON PD.PersonID = PE.PersonID

对于MySQL,请尝试使用CONCAT

SELECT PE.PersonID, 
       PE.Lastname, 
       PE.FirstName,
       CONCAT(PD.email,  '_' ,  PE.Address , '_' , PE.City) AS combineddata
FROM Persons PE
JOIN PERSON_DETAIL PD ON PD.PersonID = PE.PersonID

Working DEMO

答案 1 :(得分:0)

select 
      p.personid,p.lastname,p.firstname,
      concact(pd.email,'_',pd.address,'_',pd.city)as combined_data
from person as p
inner join person_detail pd on p.personid =pd.personid

答案 2 :(得分:0)

试试这个

select P1.PersonID,P1.LastName ,P1.FirstName,PD.email + '_' + PE.Address + '_' + PE.City combineddata  
from Persons P1 ,PERSON_DETAIL PD
where P1.PersonID = PD.PersonID