簡體   English   中英

MYSQL使用兩個不同表的結果插入到單個表中

[英]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_idklant_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM