Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.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_Inner Join - Fatal编程技术网

Php 多个内部连接擦除属性

Php 多个内部连接擦除属性,php,mysql,sql,inner-join,Php,Mysql,Sql,Inner Join,我有两张桌子: 专辑(idalbum、idauthor、idcompositor、idfeat) 人员(身份证、名、姓) 我的查询 SELECT * FROM albums a INNER JOIN people p ON a.idauthor = p.id INNER JOIN people p1 ON a.idcompositor = p1.id INNER JOIN people p2 ON a.idfeat = p2.id where a.idalbum=:id 我想要什么: Alb

我有两张桌子:

专辑(idalbum、idauthor、idcompositor、idfeat)

人员(身份证、名、姓)

我的查询

SELECT * FROM albums  a
INNER JOIN people p ON a.idauthor = p.id
INNER JOIN people p1 ON a.idcompositor = p1.id
INNER JOIN people p2 ON a.idfeat = p2.id
where a.idalbum=:id
我想要什么:

Album,
p[First Name, Last Name],
p1[First Name, Last Name],
p2[First Name, Last Name]
我的问题:

当我打印查询时,我只有一个名字和一个姓氏,即“p2”值

提前感谢:)

然后,您将能够访问作者、作曲家和特写,以及所有专辑属性

然后,您将能够访问作者、作曲家和特写,以及所有专辑属性

然后,您将能够访问作者、作曲家和特写,以及所有专辑属性


然后,您将能够访问作者、作曲家和特写,以及所有专辑属性。您只需将其他字段添加到查询结果中:
a.*,p.*,p1.*,p2.

SELECT a.*,p.*,p1.*,p2.* FROM albums  a
INNER JOIN people p ON a.idauthor = p.id
INNER JOIN people p1 ON a.idcompositor = p1.id
INNER JOIN people p2 ON a.idfeat = p2.id
where a.idalbum=:id

对于其他数据库(例如ORACLE),您的原始查询甚至无法工作,因为如果不指定星号所属的表(例如
a.*
),则不允许将
*
与多个表组合使用。

您只需将其他字段添加到查询结果中即可:
a.*,p.*,p1.*,p2.*

SELECT a.*,p.*,p1.*,p2.* FROM albums  a
INNER JOIN people p ON a.idauthor = p.id
INNER JOIN people p1 ON a.idcompositor = p1.id
INNER JOIN people p2 ON a.idfeat = p2.id
where a.idalbum=:id

对于其他数据库(例如ORACLE),您的原始查询甚至无法工作,因为如果不指定星号所属的表(例如
a.*
),则不允许将
*
与多个表组合使用。

您只需将其他字段添加到查询结果中即可:
a.*,p.*,p1.*,p2.*

SELECT a.*,p.*,p1.*,p2.* FROM albums  a
INNER JOIN people p ON a.idauthor = p.id
INNER JOIN people p1 ON a.idcompositor = p1.id
INNER JOIN people p2 ON a.idfeat = p2.id
where a.idalbum=:id

对于其他数据库(例如ORACLE),您的原始查询甚至无法工作,因为如果不指定星号所属的表(例如
a.*
),则不允许将
*
与多个表组合使用。

您只需将其他字段添加到查询结果中即可:
a.*,p.*,p1.*,p2.*

SELECT a.*,p.*,p1.*,p2.* FROM albums  a
INNER JOIN people p ON a.idauthor = p.id
INNER JOIN people p1 ON a.idcompositor = p1.id
INNER JOIN people p2 ON a.idfeat = p2.id
where a.idalbum=:id

对于其他数据库(例如ORACLE),您的原始查询甚至无法工作,因为如果不指定星号所属的表(例如
a.*
),则不允许将
*
与多个表组合使用。

您的问题是每一列都有相同的名称。当结果转换为PHP数组时,后面的列将用相同的索引/列名覆盖第一列。您必须为每一列指定一个唯一标识符,才能访问每一个值

SELECT *, p.firstname as p_firstname, p.lastname AS p_lastname,
p1.first_name AS p1_firstname, [...]
FROM albums  a
INNER JOIN people p ON a.idauthor = p.id
INNER JOIN people p1 ON a.idcompositor = p1.id
INNER JOIN people p2 ON a.idfeat = p2.id
where a.idalbum=:id

作为替代方案,您可以使用另一种获取样式,该样式通过列号将列插入数组中。(如果您使用的是PDO,请参阅)

您的问题是每列都有相同的名称。当结果转换为PHP数组时,后面的列将用相同的索引/列名覆盖第一列。您必须为每一列指定一个唯一标识符,才能访问每一个值

SELECT *, p.firstname as p_firstname, p.lastname AS p_lastname,
p1.first_name AS p1_firstname, [...]
FROM albums  a
INNER JOIN people p ON a.idauthor = p.id
INNER JOIN people p1 ON a.idcompositor = p1.id
INNER JOIN people p2 ON a.idfeat = p2.id
where a.idalbum=:id

作为替代方案,您可以使用另一种获取样式,该样式通过列号将列插入数组中。(如果您使用的是PDO,请参阅)

您的问题是每列都有相同的名称。当结果转换为PHP数组时,后面的列将用相同的索引/列名覆盖第一列。您必须为每一列指定一个唯一标识符,才能访问每一个值

SELECT *, p.firstname as p_firstname, p.lastname AS p_lastname,
p1.first_name AS p1_firstname, [...]
FROM albums  a
INNER JOIN people p ON a.idauthor = p.id
INNER JOIN people p1 ON a.idcompositor = p1.id
INNER JOIN people p2 ON a.idfeat = p2.id
where a.idalbum=:id

作为替代方案,您可以使用另一种获取样式,该样式通过列号将列插入数组中。(如果您使用的是PDO,请参阅)

您的问题是每列都有相同的名称。当结果转换为PHP数组时,后面的列将用相同的索引/列名覆盖第一列。您必须为每一列指定一个唯一标识符,才能访问每一个值

SELECT *, p.firstname as p_firstname, p.lastname AS p_lastname,
p1.first_name AS p1_firstname, [...]
FROM albums  a
INNER JOIN people p ON a.idauthor = p.id
INNER JOIN people p1 ON a.idcompositor = p1.id
INNER JOIN people p2 ON a.idfeat = p2.id
where a.idalbum=:id
作为替代方案,您可以使用另一种获取样式,该样式通过列号将列插入数组中。(如果您正在使用PDO,请参阅)