如何将两个concat查询放入同一个表中作为两列

时间:2013-02-06 07:57:50

标签: mysql sql concat

我刚刚开始使用MySQL而我无法找到答案,因为它不存在?

我想把这两个放在一个表中作为两列

SELECT CONCAT(Name, ' ',Category) as Pet_Name_and_Category
FROM Animal

SELECT CONCAT(firstname, ' ',lastname) as Customer_Name
From PetCustomer

所以我想要的表格看起来像:

Gary, Snail               Spongebob Squarepants

Sandy, Squirrel           Patrick Star

这些是同一个表中的两个独立列。

3 个答案:

答案 0 :(得分:0)

试试这个,

select Name || ' ' || Category from Animal
union
select firstname || ' ' || lastname from PetCustomer;

如果您希望将这些列作为单独的列,则可以使用此

select Name || ' ' || Category as pet, firstname || ' ' || lastname as owner
from Animal, PetCustomer
where <join_condition_depending_on_table_structure>;

答案 1 :(得分:0)

您需要使用INNER JOIN,例如:

SELECT 
    CONCAT(Name, ' ',Category) as Pet_Name_and_Category, 
    CONCAT(firstname, ' ',lastname) as Customer_Name
FROM Animal 
    INNER JOIN PetCustomer ON Animal.Customer_id = PetCustomer.id

连接语法取决于2个表的关联方式。换句话说

  

你怎么知道'Spongebob Squarepants'拥有'加里,蜗牛'?


如果它们不相关且您只想将它​​们显示在彼此旁边,请使用2个单独的查询。 (PHP中的示例)

$animals = $db->query("SELECT CONCAT(Name, ' ',Category) as Pet_Name_and_Category FROM Animal");
$customers = $db->query("SELECT CONCAT(firstname, ' ',lastname) as Customer_Name From PetCustomer");

while (list($animal) = $animals->fetch_row() || list($customer) = $customers->fetch_row()) {
    echo $animal, "\t", $customer, "\n";
}

答案 2 :(得分:0)

也许尝试子查询:

SELECT 
    (SELECT CONCAT(Name, ' ',Category) 
     FROM Animal 
     WHERE <column> = <search_argument>)  as Pet_Name_and_Category ,
    (SELECT CONCAT(firstname, ' ',lastname) 
     FROM PetCustomer 
     WHERE <column> = <search_argument>) AS Customer_Name
FROM <first table>