是否可以使用外键更新mysql表(使用DataTables显示)? 例如,我有两个表:
`table1`(`id`, `type`, `description`);
`table2`(`id`, `name`);
假设这些表填充了:
[1, 1, 'description 1']
和
[1, 'type 1'],
[2, 'type 2']
我的table1
。type
字段是Table2的id
字段的整数外键。我可以运行一个选择查询:
SELECT `table1`.`id`, `table2`.`name`, `table1`.`description`
FROM `table1`
LEFT JOIN `table2` ON
`table1`.`type` = `table2`.`id`;
然后,使用DataTables显示它以生成包含以下字段的表:table1
。id
,table2
。name
,table1
。{{ 1}}
我可以通过以下方式读取数据表中的数据:
description
我想用新的id更新外键。
我的第一个想法是进行MySQL更新,但这会出错,因为var $data = $('#myTable').DataTable();
var $row = $data.rows().data();
中不存在name
(只有table1
的外键引用。{{1} })
如果来自$ data.rows()。data()的返回值显示字符串table2
字段而不是来自id
的整数name
,我将如何更新外键引用(来自前面提到的SELECT语句?
FIDDLE:https://jsfiddle.net/ns6zahpc/1/
编辑:有没有办法在同一个单元格中显示整数id值和字符串名称值?
答案 0 :(得分:1)
我认为这就是你想要的;
UPDATE table1 SET `type` = 'your_value' WHERE `type` IN (
SELECT id
FROM table2
WHERE name = 'some_name_value'
);