【问题标题】:Can a json contain same key value?json可以包含相同的键值吗?
【发布时间】:2016-03-21 17:14:32
【问题描述】:

我取两个表的内容执行这样的连接:

SELECT * FROM table1
     INNER JOIN table2
     ON table1.code = table2.code

现在table1 的结构如下:

|CODE|Info|Created          |Modified
|R789|Home|21/03/2016 10:00 |21/03/2016 15:00

table2:

|CODE|Description|Created       |Modified
|R789|Testing| 21/03/2016 10:05 | 21/03/2016  18:10

现在的问题是查询返回了这个结果:

"Code":"RB01",
"Info":Home,
"Created":"21/03/2016 10:05",
"Modified":"21/03/2016 18:10",
"Description":"Testing"

你怎么能看到我有createdmodified在两个表中是相同的。所以查询丢弃了table1createdmodified..这对我来说是个问题,我该如何避免这种情况?

【问题讨论】:

  • 这两个表代表什么?期望的结果是什么?
  • @showdev table1 是一个项目列表。 table2 包含每个项目的描述,注意第二个表可以有多个代码为 R789... 现在我想返回两个表的所有字段。

标签: php mysql json pdo


【解决方案1】:

您需要使用AS keyword to create an alias 作为列名。考虑一下:

SELECT t1.CODE, t1.Info, t1.Created AS t1Created, t1.Modified AS t1Modified, t2.Description, t2.Created AS t2Created, t2.Modified AS t2Modified
    FROM table1 t1
    INNER JOIN table2 t2 ON t1.CODE = t2.CODE

这将返回

"Code":"RB01",
"Info":Home,
"t1Created":"21/03/2016 10:00",
"t1Modified":"21/03/2016 15:00",
"Description":"Testing",
"t2Created":"21/03/2016 10:05",
"t2Modified":"21/03/2016 18:10",

【讨论】:

  • 如果我有数千个字段,我的查询将是 100 行?
  • 我很抱歉,但这没有任何意义。有多少字段与表中的行数没有相关性。
  • 不,我的解释很糟糕。我的意思是,而不是这样做SELECT t1.CODE, t1.Info, t1.Created AS t1Created, t1.Modified AS t1Modified 可以这样做:SELECT * FROM table1 并达到相同的结果?
  • @Sandokan 不,这是不可能的。您必须列出列,以便您可以使用 AS 应用别名。
  • @Sandokan 不,没有其他解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-07-14
  • 2013-05-09
  • 1970-01-01
  • 2015-03-28
  • 2012-06-06
  • 1970-01-01
  • 2016-06-21
相关资源
最近更新 更多