0
我在3表如下SQL查詢在加入3個表
表Student1:
id status amount Name date
1 0 4500 ram 04/02/2012
2 0 2000 shyam 05/09/2013
4 0 1500 ghanshyam 08/11/2014
表STUDENT2:
id status amount Name date
3 0 4500 gopal 04/02/2012
2 0 8000 radheshyam 15/11/2013
4 1 1500 ghanshyam 18/10/2015
表學生三:
id status amount Name date
1 1 4500 ram 04/02/2012
2 0 6500 radhe 11/11/2014
3 1 4500 gopal 04/02/2012
除外結果條件:
1)從組合3個表中選擇具有唯一「ID」的記錄。
2)更新相應記錄的字段「日期」,如果狀態= 1的同一記錄的同名,金額在3個表中的任何一箇中。 3)如果在合併3個具有相同「id」但其他字段不同(即相同的id但不同的名稱,數量,日期)的表後將2個或多個記錄添加到最終結果中,但是我的追加1, 11,111給他們。
最終結果可以預料:
id status amount Name date
1 1 4500 ram 04/02/2012
2 0 2000 shyam 05/09/2013
21 0 8000 radheshyam 15/11/2013
211 0 6500 radhe 11/11/2014
3 1 4500 gopal 04/02/2012
4 1 1500 ghanshyam 18/10/2015
的Sql小提琴
CREATE TABLE Student1
(`id` int,`status` int,`amount` int , `Name` varchar(10), `date` varchar(55))
;
INSERT INTO Student1
(`id`,`status`,`amount`, `Name`, `date`)
VALUES
(1,0,4500, 'ram', '04/02/2012'),
(2,0,2000, 'shyam', '05/09/2013'),
(4,0,1500, 'ghanshyam', '08/11/2014')
;
CREATE TABLE Student2
(`id` int,`status` int,`amount` int , `Name` varchar(10), `date` varchar(55))
;
INSERT INTO Student2
(`id`,`status`,`amount`, `Name`, `date`)
VALUES
(3,0,4500, 'gopal', '04/02/2012'),
(2,0,8000, 'radheshyam', '15/11/2013'),
(4,1,1500, 'ghanshyam', '18/10/2015')
;
CREATE TABLE Student3
(`id` int,`status` int,`amount` int , `Name` varchar(10), `date` varchar(55))
;
INSERT INTO Student3
(`id`,`status`,`amount`, `Name`, `date`)
VALUES
(1,1,4500, 'ram', '04/02/2012'),
(2,0,6500, 'radhe', '11/11/2014'),
(3,1,4500, 'ghanshyam', '04/02/2012')
;
查詢:
SELECT * FROM Student1
FULL OUTER JOIN Student2
ON Student1.Name = Student2.Name
錯誤:
check the manual that corresponds to your MySQL server version for the right syntax to use near 'OUTER JOIN Student2 ON Student1.Name = Student2.Name' at line 2
爲什麼你有三張相同列的表?你的數據設計似乎有問題。 –
真的。在這種情況下,** ** UNION **就足夠了。其實,** 2 **聯盟。 –
所有這三個表都來自不同的來源。所以結合所有3獲得決賽桌將被轉移到所有來源作爲更新表 –