[英]MYSQL insert into single table using the results of two different tables
你好,誰願意咬牙切齒,
我遇到了多個如何使用子查詢結果集選擇到另一個表的示例。 然而,我有:
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
在短短1查詢。
好消息! MySQL有一個簡單的方法: MySQL插入w / Select
所以在你的情況下它將是:
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(如果它已經存在),我不確定如何在一個查詢中執行該操作而不會造成大量混亂。
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')
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'
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'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.