Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 查询结果中的列数过多_Php_Mysql_Sql - Fatal编程技术网

Php 查询结果中的列数过多

Php 查询结果中的列数过多,php,mysql,sql,Php,Mysql,Sql,我正在尝试为使用MySQL和PHP的公司列表编写一个简单的界面。所以,我想从我的数据库中获取一些信息 这是我的桌子: 公司\u数据-仅用于系统信息 公司数据-我想在这里保存大公司的信息 个人数据——我想在这里保留有关小公司的信息 这是桌子 下面是我写的问题: SELECT a.id, a.user_id, a.added, a.`status`, a.company_id, a.company_type, a.deposit,

我正在尝试为使用MySQL和PHP的公司列表编写一个简单的界面。所以,我想从我的数据库中获取一些信息

这是我的桌子:

  • 公司\u数据-仅用于系统信息
  • 公司数据-我想在这里保存大公司的信息
  • 个人数据——我想在这里保留有关小公司的信息
这是桌子

下面是我写的问题:

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\u name%1、%other\u field\u name%1等等。当然,这不是mysql错误——我已经问过了——但是我想删除这个字段?有可能,或者我必须在应用程序端转换此输出?

由于您在查询中选择了%field\u name%1,%other\u field\u name%1,因此它们是可见的: b、 全名, b、 税号, b、 地址:, b、 声明日期:, b、 psrn, c、 全名, c、 税号, c、 地址:, c、 声明日期:, c、 psrn

当您在不同的表中使用同名字段时,结果列名随此标识符field1、field2、fieldn。。。为了区分字段来自哪个表。 如果要避免使用此名称,可以使用别名,如下所示: [...] b、 全名作为公司全名, [……]

可能,如果每个公共字段都是重合的,您不需要全部显示它们,所以只需将它们从选择中删除即可

希望对你有用。
Br.

您应该使用联合,而不是第二个联合。最好将表
公司数据
个人数据
合并到一个表中。MySQL本身不会这样做,MySQL的任何PHP扩展也不会这样做。您必须使用添加额外字段的PHP数据访问库,以便关联数组键(或对象字段)不会相互覆盖。但我想这样做,因为创建额外字段以后将很难编辑!我已经创建了另一个查询。(表1连接表2)并集(表1连接表3),它工作得非常好。谢谢大家!