对于想要咬牙切齿的人,你好,
我遇到了如何将子查询结果集选择到另一个表中的多个示例。 然而,我有:
SELECT `klanten_zakelijk`.`bedrijfs_id`, `klanten`.`klant_id`
FROM `klanten`,`klanten_zakelijk`
WHERE `klanten`.`emailadres` = '$email'
AND `klanten_zakelijk`.`bedrijfs_kvk`='$kvknr'
如您所见,我从两个不同的表中获取结果,需要将它们移植到另一个表中。
我希望将这些值插入表klant_bedrijf_machtiging
。
INSERT INTO `klant_bedrijf_machtiging` (`klant_id`, `bedrijfs_id`, `machtiging`) VALUES ('8501', '1', '3');
列machtiging
是标准3,带有插入,但如果公司已经存在,我需要能够将其更改为1,但我会在代码的另一部分拦截它。
我看到的所有示例都只是将一个表导入到anther表中的结果。 从两个表中获取结果时是否适用相同的逻辑?如果是这样,那么实现这一目标的最明智和最有效的方法是什么?
所以要简短提问:
如何将bedrijfs_id
和klant_id
放入klant_bedrijf_machtiging
的相应列中,同时仍然可以在一次查询中操作最后一列machtiging
。
答案 0 :(得分:3)
所以在你的情况下,它将是:
INSERT INTO klant_bedrijf_machtiging (`klant_id`, `bedrijfs_id`, `machtiging`)
SELECT `klanten`.`klant_id`, `klanten_zakelijk`.`bedrijfs_id`, 3
FROM `klanten`,`klanten_zakelijk`
WHERE `klanten`.`emailadres` = '$email'
AND `klanten_zakelijk`.`bedrijfs_kvk`='$kvknr'
至于将项目更改为1,如果它已经存在,我不确定如何在一个查询中执行该操作而不会造成大量混乱。
答案 1 :(得分:1)
INSERT INTO `klant_bedrijf_machtiging` (`klant_id`, `bedrijfs_id`, `machtiging`)
(SELECT `klanten`.`klant_id`, `klanten_zakelijk`.`bedrijfs_id`, 3
FROM `klanten`,`klanten_zakelijk`
WHERE `klanten`.`emailadres` = '$email'
AND `klanten_zakelijk`.`bedrijfs_kvk`='$kvknr')
答案 2 :(得分:0)
INSERT INTO yourtable (fields) SELECT `klanten_zakelijk`.`bedrijfs_id`, `klanten`.`klant_id`
FROM `klanten`,`klanten_zakelijk`
WHERE `klanten`.`emailadres` = '$email'
AND `klanten_zakelijk`.`bedrijfs_kvk`='$kvknr'
答案 3 :(得分:-1)
INSERT INTO klant_bedrijf_machtiging (`klant_id`, `bedrijfs_id`, `machtiging`)
SELECT `klanten`.`klant_id`, `klanten_zakelijk`.`bedrijfs_id`, 3
FROM `klanten`,`klanten_zakelijk`
WHERE `klanten`.`emailadres` = '$email'
AND `klanten_zakelijk`.`bedrijfs_kvk`='$kvknr'