Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.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 从select中的两个表中获取数据_Php_Sql_Relationship - Fatal编程技术网

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项作为示例?