2014-02-10 48 views
0

我目前有两个表具有相同的列名;MYSQL - 区分表名

APPLICATION_Reference.firstName,APPLICATION_Reference.lastName APPLICATION_Recommendation.firstName,APPLICATION_Recommendation.lastName

$all_references = mysqli_query($con, "SELECT * 
FROM APPLICATION_Reference 
INNER JOIN APPLICATION_Recommendation 
ON APPLICATION_Reference.referenceId = APPLICATION_Recommendation.referenceId 
INNER JOIN Applicant ON APPLICATION_Reference.firstName = Applicant.givenName 
ORDER BY APPLICATION_Reference.referenceId ASC"); 

然后,我有一个echo语句,我附和了我的数据:$applicant_reference['firstName']

我的问题是:回显列名称时,如何区分我的不同表格?

回答

1

使用表别名和列别名。

在您的查询中,您可以使用整个表的别名来提高可读性,例如,

APPLICATION_Reference ref 

您的查询就变成

SELECT * 
FROM APPLICATION_Reference ref 
INNER JOIN APPLICATION_Recommendation rec ref.referenceId = rec.referenceId 
INNER JOIN Applicant app ON ref.firstName = app.givenName 
ORDER BY ref.referenceId ASC 

代替,然后使用SELECT *,列出你感兴趣的领域,并将它们重命名为有意义的结果集,例如

SELECT ref.firstName reference_first_name, 
     rec.firstname recommendation_first_name, 
     ... 

然后,您可以访问PHP代码中的新列名称。您当然不需要使用如此长的引用(例如reference_first_name) - 这些仅仅是示例。

+0

作品,谢谢:) – user3130731

0

你可以使用

SELECT *, table1.field AS field1, table2.field AS field2 ... 

然后引用字段FIELD1和FIELD2在输出

0

可以使用别名

SELECT 
APPLICATION_Recommendation.lastName as APPLICATION_Recommendation_lastName, 
Applicant .lastName as Applicant _lastName 
... 
FROM APPLICATION_Reference 
INNER JOIN APPLICATION_Recommendation ON APPLICATION_Reference.referenceId = APPLICATION_Recommendation.referenceId 
INNER JOIN Applicant ON APPLICATION_Reference.firstName = Applicant.givenName 
ORDER BY APPLICATION_Reference.referenceId ASC