我的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的同一个表中。
答案 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;