将单独查询的结果添加到JSON编码数组

时间:2012-11-12 15:36:41

标签: php jquery mysql json

我的MySQL数据库有一个查询,从MySQL表(信息)中返回四个信息字段,然后我使用PHP的json_encode()函数对JSON进行编码。它返回的两个字段是“staffMember”和“lineManager”,它返回与(单独的)用户表中该人的ID相关的整数。

我的查询返回以下内容(表格格式):

id is 1
staffMember is 14
lineManager is 12
description is this is a description
所有行都是

等..

14(例如,在上面的例子中)指的是users表中的一行,如下所示:

id is 14
firstname is dave
secondname is jones

因此,我的问题是,如何让查询的JSON部分返回“dave jones”而不是14?由于信息不在MySQL的同一个表中。

2 个答案:

答案 0 :(得分:0)

在数据库请求中使用LEFT JOIN,如

SELECT a.id, CONCAT(b.firstname, ' ', b.secondname) AS staffMember, a.lineManager, a.description 
  FROM a 
  LEFT JOIN b ON (a.staffMember = b.id)

其中a和b - 您的表名称

答案 1 :(得分:0)

正如评论者所提到的,您肯定希望将firstname和lastname字段添加到SQL结果集中。您可以通过将查询更改为JOIN到包含您的名字和姓氏数据的表来执行此操作。您的联接的“ON”子句将是两个表共有的ID。一个例子是:

SELECT * FROM yourdb.table1 T1 LEFT JOIN yourdb.table2 T2 ON T1.staffMember = T2.id;