Sql 用一个主键合并三个表,每个表的结果应逐个显示
我有三个表,它们有一个公共字段。我想选择每个表的所有行,按公共字段排序,结果应该是第一行来自第一个表,第二行来自第二个表,第三行来自第三个表 对于上述任务,什么查询有效?已给出三个表的样本数据和要求的输出,如下所示。如果我的问题很笨拙,请原谅Sql 用一个主键合并三个表,每个表的结果应逐个显示,sql,oracle10g,Sql,Oracle10g,我有三个表,它们有一个公共字段。我想选择每个表的所有行,按公共字段排序,结果应该是第一行来自第一个表,第二行来自第二个表,第三行来自第三个表 对于上述任务,什么查询有效?已给出三个表的样本数据和要求的输出,如下所示。如果我的问题很笨拙,请原谅 TABLE1 WO STATUS SITE 1001 Released 36 1002 Closed 31 1003 Released 42 TABLE2 WO
TABLE1
WO STATUS SITE
1001 Released 36
1002 Closed 31
1003 Released 42
TABLE2
WO LINE NO PRICE QTY
1001 1 100 2
1001 2 300 3
1002 1 1500 3
1003 1 100 4
1003 2 200 2
1003 3 100 1
TABLE3
WO USER SIGN ID
1001 Chrish CRS
1001 Jovan JVN
1002 Roopesh ROO
1003 Brian BRN
1003 Suren SRN
1003 Pavith PAV
输出应该是这样的
RESULT
TABLE1 1001 Released 36
TABLE2 1001 1 100 2
TABLE2 1001 2 300 3
TABLE3 1001 Chrish CRS
TABLE3 1001 Jovan JVN
TABLE1 1002 Closed 31
TABLE2 1002 1 1500 3
TABLE3 1002 Roopesh ROO
TABLE1 1003 Released 42
TABLE2 1003 1 100 4
TABLE2 1003 2 200 2
TABLE2 1003 3 100 1
TABLE3 1003 Brian BRN
TABLE3 1003 Suren SRN
TABLE3 1003 Pavith PAV
SELECT 'T1' as source, "WO", "STATUS" as f2, CAST("SITE" AS text) as f3, null as f4
FROM Table1
UNION
SELECT 'T2' as source, "WO", CAST("LINE NO" AS text) as f2, CAST("PRICE" AS text) as f3, "QTY" as f4
FROM Table2
UNION
SELECT 'T3' as source, "WO", "USER" as f2, "SIGN ID" as f3, null as f4
FROM Table3
ORDER BY "WO", source
输出
mysql还是oracle?选择一个。向我们展示您的数据库模式、示例数据和预期输出。请阅读,这里是一个学习如何提高你的问题质量和获得更好答案的好地方。嗨,谢谢..已经编辑!!好得多,但是你的结果格式很奇怪,看起来你的数据比列多。这可能吗兄弟?你意识到试图加入的数据不是同一类型的吗?谢谢老兄!!但是表2和表3还有其他列要显示!!我也需要这些列。编辑以显示添加一些唯一字段。uniquefield1可以是与所有3个表不同的字段名,但每个表中的值将显示在同一列中,名为fld1/fld2,如您所在联盟的第一个qry中所定义。Buddy!!我已经编辑了我的问题,并添加了一些样本数据供您参考!
SELECT 'T1' as source, "WO", "STATUS" as f2, CAST("SITE" AS text) as f3, null as f4
FROM Table1
UNION
SELECT 'T2' as source, "WO", CAST("LINE NO" AS text) as f2, CAST("PRICE" AS text) as f3, "QTY" as f4
FROM Table2
UNION
SELECT 'T3' as source, "WO", "USER" as f2, "SIGN ID" as f3, null as f4
FROM Table3
ORDER BY "WO", source