是否有可能用外键更新MySQL表(用DataTables显示)? 例如,我有两个表:需要帮助操纵来自DataTable的数据从MySQL数据
`table1`(`id`, `type`, `description`);
`table2`(`id`, `name`);
比方说,表中含有:
[1, 1, 'description 1']
和
[1, 'type 1'],
[2, 'type 2']
我table1
。 type
字段是表2的id
字段的整数外键。我可以运行一个选择查询:
SELECT `table1`.`id`, `table2`.`name`, `table1`.`description`
FROM `table1`
LEFT JOIN `table2` ON
`table1`.`type` = `table2`.`id`;
然后,利用数据表显示它,以产生包含以下字段的表:table1
。 id
,table2
。 name
,table1
。 description
我可以读取数据表中的数据:
var $data = $('#myTable').DataTable();
var $row = $data.rows().data();
我想更新与新的ID的外键。
我的第一个想法是做一个MySQL的更新,但是这会报错,因为name
不存在table1
(只有一个外键引用table2
。id
)
如何将更新,如果外键引用从data.rows()。data()返回的值显示字符串name
而不是整数id
from table2
(来自前面提到的SELECT语句)?
FIDDLE:https://jsfiddle.net/ns6zahpc/1/
编辑:是否有显示的值都整数ID,并在同一小区的字符串名称值的方法吗?
您是否尝试过在您的选择查询中添加外键的ID?你如何更新table1的'type'列? – dunli
@dunli我已经想通了的采用内部SELECT语句解决我的问题: UPDATE table1的SET'type' =( SELECT ID FROM表2 WHERE 名= '2型' ) WHERE table1.id = 1 – ssaguindel