我甚至不知道我想要的是不是可能的,但是这里:我有一个存储过程,返回一个包含我需要的所有数据的数组,但不是我想要的格式:我有
A表USER
A表TYPE
A表USER_TYPE (foreign key user_id from USER, type_id from TYPE)
A表GAME
A表USER_GAME (foreign key user_id from USER, game_id from GAME)
我有一个带有连接的查询:
SELECT user_name,type_name,game_name
FROM user u
INNER JOIN user_type ut
ON u.user_id=ut.user_id
INNER JOIN type t
ON ut.type_id=t.type_id
LEFT JOIN user_game ug
ON u.user_id=ug.user_id
INNER JOIN game g
ON ug.game_id=g.game_id
WHERE t.type_name = ?
...所以我得到了一个如下格式的数组:
[0] => Array
(
[user_id] => 1
[type] => type1
[game] => game1
)
[1] => Array
(
[user_id] => 1
[type] => type1
[game] => game2
)
[2] => Array
(
[user_id] => 1
[type] => type2
[game] => game2
)等等。
但是我希望查询返回一个数组,比如
[0] => Array
(
[user_id] => 1
[type] => type1
[game1] => game1
[game2] => game2
)
[1] => Array
(
[user_id] => 1
[type] => type2
[game1] => game1
[game2] => game2
)等等。
因此列出了每个数组中一个用户的所有游戏:我想我基本上需要保持连接类型,从它获得各种user_id,然后获得每个不同user_id的游戏,然后合并所有这些。如果这可以在过程本身内部完成,那就太好了。
我希望这不是无法阅读的,将非常感谢任何帮助。顺便说一句,如果你们中的任何人可以指导我到更高级的sql查询的好教程,因为我在这方面有点短缺……非常感谢!
发布于 2011-07-13 21:12:07
数组是PHP端结构,而不是MySQL。您的存储过程将返回一个结果集,并且您必须遍历PHP数组才能从每个玩家那里获取所有游戏。
https://stackoverflow.com/questions/6675510
复制相似问题