【问题标题】:Sql Query On Joining 3 tables连接 3 个表时的 Sql 查询
【发布时间】:2015-07-10 11:26:01
【问题描述】:

我创建了3个表如下

表学生1:

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

表Student3:

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的同名记录的状态=1,则更新相应记录的字段“日期”,在3个表中的任何一个中的金额。

3)如果在组合 3 个具有相同“id”但其他字段不同(即相同 id 但不同名称、金额、日期)的表后有 2 条或多于 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 个 UNION。
  • 这三个表都来自不同的来源。因此将所有三个组合在一起得到最终表,该表将作为更新表转移到所有来源
  • 只需UNION 3张桌子。
  • 但我必须检查所有 3 个条件

标签: android sql sqlite


【解决方案1】:

这只是这三个表之间的联合。

【讨论】:

    猜你喜欢
    • 2015-06-09
    • 2015-12-11
    • 1970-01-01
    • 1970-01-01
    • 2019-05-31
    • 1970-01-01
    • 2020-11-10
    • 2015-12-24
    • 1970-01-01
    相关资源
    最近更新 更多