用PHP处理SQL连接结果
我在使用从MySQL检索的PHP处理数据时遇到问题。这是表架构:用PHP处理SQL连接结果,php,mysql,join,Php,Mysql,Join,我在使用从MySQL检索的PHP处理数据时遇到问题。这是表架构: parents: id | firstname | lastname children: id | firstname | lastname parent_child_link child_id | parent_id 我需要以这种方式保存数据,因为我想将多位家长链接到一个孩子。现在,当我想要检索一个孩子的时候,我想得到孩子的所有信息,还有家长id。这显然是一个连接查询,因此我使用: SELECT * FROM childr
parents:
id | firstname | lastname
children:
id | firstname | lastname
parent_child_link
child_id | parent_id
我需要以这种方式保存数据,因为我想将多位家长链接到一个孩子。现在,当我想要检索一个孩子的时候,我想得到孩子的所有信息,还有家长id。这显然是一个连接查询,因此我使用:
SELECT *
FROM children c
JOIN parent_child_link l on l.child_id=c.id
WHERE c.id=1
现在,当这个id=1的孩子有两个父母(假设id为1和2),我得到的结果是:
id | firstname | lastname | parent_id
1 test test 1
1 test test 2
如果我用PHP处理这个问题,我会得到2个数组,但我希望它在一个数组中,例如
array(
'firstname' => 'test',
'lastname' => test',
'parents' => array(1, 2)
)
我怎样才能做到这一点
非常感谢 您可以使用GROUP_CONCAT返回逗号分隔的值数组
您可以使用GROUP\u CONCAT返回逗号分隔的值数组
您可以用php处理查询结果。在子id上创建一个索引的新数组,对于查询结果中的每个项,如果该项尚未存在,则将其添加到数组中。如果是,则将父id添加到其“parents”项。您可以用php处理查询结果。在子id上创建一个索引的新数组,对于查询结果中的每个项,如果该项尚未存在,则将其添加到数组中。如果是,请将父id添加到其“parents”项。我认为这将导致更多的工作。现在我只需要使用GROUP_CONCAT执行查询并分解父id。我认为这将导致更多的工作。现在我只需要使用GROUP_CONCAT执行查询并分解父id。