mysql 如何 在 phpmyadmin 中 为 一 个 表 中 的 单元 格 分配 另 一 个 表 中 的 值 ?

p4tfgftt  于 2022-11-21  发布在  Mysql
关注(0)|答案(1)|浏览(107)

我有两张表:内容模板
·Content表的模式如下:
标识符|姓名|父代
其中 parent 是“模板”(Templates)表格中某些行的ID。

Templates表的方案如下:

标识符|姓名|正文
如何根据Content表格中的父值,为值“name”指定Templates表格中的名称?
例如:
如果“模板”(Templates)表格中得行如下所示:

| 7 | pencils | some text      |
| 8 | pens    | some other text|

,则在Content表的行中,父项为7的行应获得名称“铅笔”,父项为8的行应获得名称“钢笔”

jv4diomz

jv4diomz1#

若要完全按照您的要求执行,您可以将UPDATE查询与JOIN一起使用:

update content join template on content.parent = template.id set content.name = template.name;

这将使content中的行与template中的行匹配,其中parentid匹配,并设置content中的列。
但是,您需要在每次添加新内容时运行此查询,因为它不会自动为您复制数据。
一个更好的解决方案是从JOINED表检索SELECT,这样您的SELECT查询总是从template表检索数据。
例如:

select content.id, template.name, template.text from content join template on content.parent = template.id ;

请参阅https://www.db-fiddle.com/f/5MsxuiPZNAsHHEF5m5THds/1

相关问题