我目前有两个具有相同列名的表;
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']
我的问题是:如何在回显列名时区分不同的表格?
答案 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