我正在尝试为使用MySQL和PHP的公司列表编写一个简单的界面。所以,我想从我的数据库中获取一些信息。
以下是我的表格:
所以,这是表格
这是我写的查询:
SELECT
a.id,
a.user_id,
a.added,
a.`status`,
a.company_id,
a.company_type,
a.deposit,
a.individual_operations_cache,
a.corporate_operations_cache,
a.physical_operations_cache,
b.full_name,
b.tax_number,
b.address,
b.statement_date,
b.psrn,
c.full_name,
c.tax_number,
c.address,
c.statement_date,
c.psrn
FROM
companies_data a
LEFT OUTER JOIN corporate_data b
ON (a.company_id = b.id) AND a.company_type = 0
LEFT OUTER JOIN individual_data c
ON (a.company_id = c.id) AND a.company_type = 1
WHERE
a.user_id = 3
这只是测试的代码,我很快就会扩展它。
如您所见,我的结果包含%field_name%1,%another_field_name%1等额外字段。当然这不是mysql错误 - 我问过我有什么 - 但我想删除这些字段?有可能或者我必须在应用程序端转换此输出吗?
答案 0 :(得分:1)
%field_name%1,%another_field_name%1,因为您在查询中选择它们,所以它们是可见的: b.full_name, b.tax_number, b.address, b.statement_date, b.psrn, c.full_name, c.tax_number, c.address, c.statement_date, c.psrn
当您在不同的表中使用具有相同名称的字段时,结果列名称带有此标识符field1,field2,fieldn ...,以便区分该字段来自哪个表。 如果要避免使用此名称,可以按如下方式使用别名: [...] b.full_name as corporate_full_name, [...]
可能,如果每个公共字段都是重合的,则不需要全部显示,所以只需从选择中删除它们。
希望对你有用。 宽单峰