我遇到了一個複雜的問題,一個數據庫中的數據有三個表。
First_DB插入一個數據庫的不同表數據到其他數據庫的單表
-- default_users
id username email password
1 Timbog [email protected] vads7y3kkjdfa
2 Marta [email protected] vads7y3kkjdfa
-- default_album
album_id album_name default_user_id
1 Name_Tim 1
3 Katarina 2
-- default_album_img
img_id image_file album_id
3 1320229733.jpg 1
4 3320229733.jpg 3
Second_DB
--users
user_id user_name user_email user_pass user_image
1 Timbog [email protected] vads7y3kkjdfa 1320229733.jpg
2 Marta [email protected] vads7y3kkjdfa 3320229733.jpg
我用來解決這個問題是,首先獲取所有的數據通過內連接的方法中,應該使用完全外部連接,並插入必填字段我的表,下面的查詢是我試圖讓它wor:
INSERT INTO bbpin.users (user_name, user_pin, user_email, user_password, user_img)
SELECT default_users.username, default_users.bb_pin, default_users.email, default_users.password
FROM bbmpins_pins.default_users
INNER JOIN bbmpins_pins.default_album_images
ON default_album_images.album_id = default_users.id;
我想念的事情我該如何比較兩個表的ID在這個加入也許?或者這個查詢全是錯誤的方法? 由First_DB中的seeparte中的兩個表可能有多個記錄我們如何將它們設置爲最後一個條目? 感謝
或者我們可以一個接一個地做,patty方法將所有數據從一張表插入到另一張表,而沒有衝突表,並且當它完成匹配fk和相冊鍵並插入它時,仍然需要處理那些多個值 –
如果我刪除用戶表的主鍵作爲唯一鍵,會有什麼幫助?我們可以這樣做嗎? –
查詢確實取決於您試圖實現的內容。如果內部連接查詢產生一個「缺少」行或具有「重複」行的集合,那麼可以解決這個問題。我們可以使用OUTER連接來避免「丟失」行,或者我們可以通過在SELECT列表中使用相關子查詢來避免連接。爲了避免「重複」行,我們可以在SELECT列表中使用GROUP BY和聚合表達式,或者(再次)使用相關子查詢。這真的取決於你想要返回的結果。 – spencer7593