Php 从select中的两个表中获取数据
我无法在两个表中建立关系。Php 从select中的两个表中获取数据,php,sql,relationship,Php,Sql,Relationship,我无法在两个表中建立关系。 我有一个包含用户数据的表和一个包含朋友列表的表,我想进行一次选择,返回用户数据和数组中的所有朋友。 已尝试内部联接返回,但不是您想要的。 table.user id | name | age 1 | John | 20 table.user_friend id | user | friend 1 | 1 | friend A 2 | 1 | friend B 预期的 Array ( [0] => Array (
我有一个包含用户数据的表和一个包含朋友列表的表,我想进行一次选择,返回用户数据和数组中的所有朋友。
已尝试
内部联接
返回,但不是您想要的。table.user
id | name | age
1 | John | 20
table.user_friend
id | user | friend
1 | 1 | friend A
2 | 1 | friend B
预期的
Array
(
[0] => Array
(
[id] => 1
[name] => John
)
[1] => Array
(
[id] => 1
[user] => 1
[friend] => friend A
)
[2] => Array
(
[id] => 1
[user] => 1
[friend] => friend B
)
)
SQL不能处理“数组”,至少按照SQL标准是这样。您需要查询并加入,这将为每个朋友返回一行,然后将查询结果映射到您在编程语言中选择的数据结构中。我的问题是否定的,原因是什么?我真的有疑问,不知道如何解决。如果这里不适合寻求帮助,请告诉我。ThanksI需要做2个选择
从用户中选择
和从朋友中选择,其中user=user\u id
?内部联接在这种情况下不起作用?不,您可以很容易地进行一次选择并检索两个表中的所有信息(尽管您会有用户表的重复信息)。类似于SELECT*FROM user internal JOIN friends.user=user.id
。您最终将返回一个广泛的关系。将其解析为您喜欢的结构?如果我有friend.name
会与user.name
冲突,对吗?如何避免这些碰撞?感谢您根据您使用的数据库,他们可能会返回包含该表的列名;如果没有,您也可以手动指定和区分它们。是否可以使用UNION
来返回所有3项作为示例?