2012-04-13 20 views
0

如果我有一个返回姓氏和名字的查询,我将如何将它们组合到1个字段?根据mysql查询写一个字符串

我希望能够选择一个id--然后根据该id找到名字和姓氏,然后将它们连接在一起用于最终返回的字符串。

我正在处理一个复杂的查询,其中有很多列正在返回 - 在过去,我参加了更多查询,并使用php替换了一些值。但我想在原始查询中使用它。

现在我在做类似这样:

SELECT id From....etc 

然后事后在PHP我做这个查询,并与名字和姓氏返回值更换ID

SELECT lastName, firstName FROM people, patient WHERE idpatient = $data AND people_id = id 

。ID:1 ---> ID:结果然后从改变姓氏,名字

有没有办法将这两个查询合并为一个?

+0

这两个查询是否查询不同的数据库/表? – 2012-04-13 15:56:16

+0

是的,在这种情况下,该ID用作其他表 – user1245706 2012-04-13 15:57:15

+0

的查找,一次只能查询一个表,所以我认为它是一个死角? – 2012-04-13 15:57:57

回答

0

对于你的问题的第一部分,使用CONCAT

SELECT CONCAT(lastName, firstName) AS full_name 
FROM people, patient 
WHERE idpatient = $data AND people_id = id 

另外,还可以用明确连接

SELECT CONCAT(lastName, firstName) AS full_name 
FROM people 
    INNER JOIN patient ON people_id = id 
WHERE idpatient = $data 

如果你只在行中有感兴趣的人重写此查询患者入门,或者

SELECT CONCAT(lastName, firstName) AS full_name 
FROM people 
    LEFT JOIN patient ON people_id = id 
WHERE idpatient = $data 

如果您还对可能有人的行感兴趣没有病人进入。