是否有可能用外鍵更新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