我正在构建一个社交网络页面,并希望在一个供稿页面上获取所有用户的事件。
我有一个评论表:
user_id comment date
1 "Hi...." 24 March 2013
2 "Hello..." 25 March 2013
1 "Another comment..." 26 March 2013
还有一个点赞表:
user_id id_of_liked_item date
1 101 24 March 2013
1 145 25 March 2013
是否可以执行单个查询以将这些数据放入按日期排序的所有用户事件的数组中?如果是这样,该查询看起来像什么?我的阵列需要看起来像这样:
$activity = array(
array(
"type"=>"comment",
"content"=>"Comment goes here"
),
array(
"type"=>"like",
"item_id"=>345,
)
)
我非常擅长处理 php 数据,所以我可能不需要太多组织数组的帮助,但我的问题主要是首先如何从数据库中获取数据。谢谢
最佳答案
是的,UNION 是可行的方法:
SELECT 'comment' AS Type, Comment AS Content, NULL as Item_ID, Date
FROM Comments
WHERE User_Id = 1
UNION ALL SELECT 'like', NULL, id_of_liked_item, Date
FROM Likes
WHERE User_Id = 1
这会给你一个看起来像这样的结果集:
Type Content Item_ID Date
------- ------------------ ------- -------------
comment Hi.... null 24 March 2013
comment Another comment... null 26 March 2013
like null 101 24 March 2013
like null 145 25 March 2013
你可以从那里拿走它。
关于mysql - 使用一个 MySQL 查询从两个表中获取数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15641036/