Mysql - 如何在左连接中为整个表数据添加别名

标签 mysql sql alias foreign-key-relationship

假设我有两个表,
用户(id,姓名,性别)
posts(id, user_id(foreign_key from users), body, date)

我需要查询一个帖子,结果应该如下所示

[
  "id": 1,
  "body": "Some post body",
  "date": "24-10-2015"
  "user": [
   "id": 23,
   "name": "FirstName LastName",
   "gender": "male"
  ]
 ]

我试过了,它给出了两个表的所有属性。但是我需要 users 表中的属性作为数组。我该怎么做?

SELECT * 
  FROM  `posts` 
  LEFT 
  JOIN  `users` 
  ON  `posts`.`user_id` =  `users`.`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

关于Mysql - 如何在左连接中为整个表数据添加别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33184650/

相关文章:

MySQL基于一列条件的多层过滤

php - 带有单选按钮的表单提交到 mysql

mysql - 关闭only_full_group_by sql_mode有什么后果?

sql - 在 SQL Server 中执行日期/时间减法

sql - 错误 18456。状态 6 "Attempting to use an NT account name with SQL Server Authentication."

mongodb - 如何在 MongoDB Shell 中定义别名?

mysql min where 语句

SQL - 聚合函数中的子查询

linux - 如何从Linux中的自定义别名获取参数

linux - 使用超过一级的 bash 别名(shell 中的 shell)