Mysql - 如何在左连接中为整个 table 数据添加别名
Mysql - How to alias a whole table data in a left join
假设我有两个 table,
users(id, name, gender)
posts(id, user_id(foreign_key from users), body, date)
我需要查询一个 post,结果应该如下所示
[
"id": 1,
"body": "Some post body",
"date": "24-10-2015"
"user": [
"id": 23,
"name": "FirstName LastName",
"gender": "male"
]
]
我试过了,它给出了 table 的所有属性。但是我需要 users
table 中的属性作为数组。我该怎么做?
SELECT *
FROM `posts`
LEFT
JOIN `users`
ON `posts`.`user_id` = `users`.`id`
您可以使用group_concat
功能。此函数以逗号分隔的形式生成用户数据。我不太了解你的数据库表,但我尝试设置一个 ex-
SELECT post.Id, group_concat(users.id) as user_id, group_concat(users.name) as user_name, group_concat(users.gender) as user_genders
FROM `posts`
LEFT JOIN `users`
ON `posts`.`user_id` = `users`.`id`
GROUP BY posts.id
试过了。
http://sqlfiddle.com/#!9/a907b/21
您可以进一步格式化。
SELECT CONCAT('[\n "id": ',POSTS.ID,', \n "body": "'
,BODY,'",\n "date": "' ,DATE,'"\n "user": [\n "id": '
,USERS.ID,',\n "name": "', NAME,'",\n "gender": "'
,gender,'"\n ]\n ]')
FROM USERS
LEFT JOIN POSTS ON users.id=posts.user_id
要在 sqlfiddle 中查看,请使用 Run SQL
按钮上的下拉菜单并选择 plaintext output
假设我有两个 table,
users(id, name, gender)
posts(id, user_id(foreign_key from users), body, date)
我需要查询一个 post,结果应该如下所示
[
"id": 1,
"body": "Some post body",
"date": "24-10-2015"
"user": [
"id": 23,
"name": "FirstName LastName",
"gender": "male"
]
]
我试过了,它给出了 table 的所有属性。但是我需要 users
table 中的属性作为数组。我该怎么做?
SELECT *
FROM `posts`
LEFT
JOIN `users`
ON `posts`.`user_id` = `users`.`id`
您可以使用group_concat
功能。此函数以逗号分隔的形式生成用户数据。我不太了解你的数据库表,但我尝试设置一个 ex-
SELECT post.Id, group_concat(users.id) as user_id, group_concat(users.name) as user_name, group_concat(users.gender) as user_genders
FROM `posts`
LEFT JOIN `users`
ON `posts`.`user_id` = `users`.`id`
GROUP BY posts.id
试过了。 http://sqlfiddle.com/#!9/a907b/21
您可以进一步格式化。
SELECT CONCAT('[\n "id": ',POSTS.ID,', \n "body": "'
,BODY,'",\n "date": "' ,DATE,'"\n "user": [\n "id": '
,USERS.ID,',\n "name": "', NAME,'",\n "gender": "'
,gender,'"\n ]\n ]')
FROM USERS
LEFT JOIN POSTS ON users.id=posts.user_id
要在 sqlfiddle 中查看,请使用 Run SQL
按钮上的下拉菜单并选择 plaintext output