2017-04-14 15 views
0

表名Concat的到列可以說,我在mysql中如何在mysql中

Owners - id, name 
Pets - id, name, owner_id 
SELECT pets.*, owners.* FROM pets JOIN owners ON owners.id=pets.owner_id 

連接兩個表的結果回來用多個ID和名稱列。有沒有辦法讓列以區分像pets.idowners.id這樣的表的方式返回,而不指定每個列名?

+0

可能的解決方法可以[關於這裏的問題找到。](HTTP:/ /stackoverflow.com/questions/6911698/rename-a-select-column-in-sql) – AGoranov

回答

0

表:

CREATE TABLE `my_table_name` (
    `id` int(11) unsigned NOT NULL AUTO_INCREMENT, 
    `name` varchar(255) DEFAULT NULL, 
    PRIMARY KEY (`id`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1; 

查詢:

SELECT GROUP_CONCAT(CONCAT(" ", table_name,".", column_name, " as `", table_name, ".", column_name, "`")) FROM information_schema.columns WHERE table_name='my_table_name'; 

結果:

my_table_name.id as `my_table_name.id`, my_table_name.name as `my_table_name.name` 
0

只要命名列?

SELECT pets.id AS pets_id, 
    owners.id AS owners_id, 
    pets.name AS pets_name, 
    owners.name AS owners_name 
FROM pets JOIN owners 
ON owners.id=pets.owner_id 
+0

對不起,我應該指定我沒有手動指定每一列 – joels