2

我有一个查询到我的 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(在上面的例子中)是指用户表中的一行,类似于:

id is 14
firstname is dave
secondname is jones

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

4

2 回答 2

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 - 你的表名

于 2012-11-12T15:45:55.217 回答
0

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

SELECT * FROM yourdb.table1 T1 LEFT JOIN yourdb.table2 T2 ON T1.staffMember = T2.id;
于 2012-11-12T15:47:58.940 回答