2016-04-05 43 views
1

因此有三個表。來自結點表的重複值

Users(uid,username,email);

Studies(sid, studyname);

Users_Studies(uid,sid);

現在讓我們說的多對多的結表被填充,如: User_studies(uid,sid) (1,1) (1,2) (1,5) (3,1) (2,1)

我創建獲取UID = 4的用戶。 ,我想用戶獲得相同的連接的uid = 1 這意味着它應該是這樣的: User_studies(uid,sid) (1,1) (1,2) (1,5) (3,1) (2,1) (4,1) (4,2) (4,5)

請告訴我處理這個最好的方法是什麼?看着存儲過程和while循環沒有完全弄清楚:)是否有一個簡單的重複命令?或可能有人請引導我做到這一點的最好辦法:)

+0

嗯仍然有它的一些問題。我試着去獲得基於用戶名的uid和值不是ID:P – svennand

+0

想通了 '插入User_studies(UID,SID) 選擇user.uid,從用戶user_studies.sid ,Users_studies 凡User.uid = 4 和User_studies。 = 1;' – svennand

回答

0

您正在尋找這樣的事情:

INSERT INTO User_studies (uid, sid) 
SELECT 4, sid 
FROM User_studies 
WHERE uid = 1 
+0

><我坐了好幾個小時,抓着我的腦袋做着各種各樣瘋狂的事情,就這麼簡單:P謝謝! :) – svennand

+0

我將用存儲過程調用中的變量更改4。該命令本身工作(剛剛嘗試) – svennand

+0

@ roadrunner66「選擇4」總是在該位置返回4。當你有一個已知的值,比如一個新的uid,將其放入連接表中時很有用。這是複製現有數據但是新PK的最佳方式。 – Karelzarath