区分表名称

时间:2014-02-10 16:09:28

标签: mysql sql

我目前有两个具有相同列名的表;

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']

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

3 个答案:

答案 0 :(得分: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) - 这些只是例子。

答案 1 :(得分:0)

你可以使用

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

然后将字段引用为输出

中的field1和field2

答案 2 :(得分: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
相关问题