根据mysql查询编写一个字符串

时间:2012-04-13 15:54:45

标签: mysql subquery

如果我有一个返回名字和姓氏的查询,我该如何将它们合并到1个字段中呢?

我希望能够选择一个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:姓氏,名字

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

1 个答案:

答案 0 :(得分:0)

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

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

此外,您可以使用显式JOIN重写此查询

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

如果您对那些可能没有患者入口的人的行感兴趣。