0

这个问题很难用一句话概括。我有两张表 - 其中一张由外部提要自动定期更新。第二个表包含第二个表中某些行的额外信息,由唯一键标识。这是一个例子:

表格1
    id: int 主键
    频道:varchar(255) 唯一键
    名称:varchar(255) NOT NULL
    已验证:tinyint(1) NOT NULL

表2
    id: int 主键
    频道:varchar(255) 唯一键
    额外信息:varchar(255)

表 1 是主表。这是实际选择的表。我希望在选择时将 Table2 中的字段(除了 id 和通道)移动到 Table1,就好像 Table2 中存在于 Table1 中的所有行在选择时都合并了一样。

例如,我希望这两个表中的信息以 JSON 输出形式结束,如下所示

[{
    "id": 5,
    "channel": "bkids2",
    "name": "Bkid",
    "verified": true,
    "extra_info": "Some extra information added using Table2"
},
...
]

我想知道最快的方法是什么。我可以使用 SQL 语法快速做到这一点吗?我知道某些类型的查询非常慢,因此仅获取两个表中的所有数据并使用服务器端编程语言执行合并可能会更快?

我一半假设前者是正确答案,在这种情况下:我什至如何使用 MySQL 来做到这一点?子查询?加入?联盟?

我不得不承认我并不完全了解这些技术中的任何一种是如何工作的,或者它们运行的​​速度/速度有多慢,所以感谢任何可以为我指明正确方向的人。

4

2 回答 2

1

尝试这个:

SELECT Table1.*, IFNULL(Table2.extra_info, 'DefaultValue') as extra_info
FROM Table1 LEFT OUTER JOIN Table2
ON Table1.id = Table2.id
于 2012-04-26T05:54:24.643 回答
0

您可以编写查询以获得所需的输出。

SELECT id, channel, name, verified, extra_info FROM table_1 NATURAL JOIN table_2

此查询连接两个表并显示两者之间的共同结果。希望这是您问题的答案....

于 2012-04-26T06:05:31.203 回答