zhaojf1978 发表于 2024-7-12 16:56

如何利用查询语句将没有关联的数据表在一个查询结果中显示

本帖最后由 zhaojf1978 于 2024-7-12 17:00 编辑

在sql等数据查询中,有时会碰到没有关系的几张表的不同字段
如有x,y,z三张表,x表第1字段存放字母a,第2字段存放字母b;
                           y表第1字段存放字母c,第2字段存放字母d;
                           z表第1字段存放字母e,第2字段存放字母f;
现在要查询x,y,z表中的第1个字段的内容,如何利用select语句将没有关联的数据表的内容在一个查询结果中显示?
网上也查了下,可以用下面的语句进行查询SELECT x."1" ,y."1" ,z."1"FROM zhaojf06 x,zhaojf07 y,zhaojf08 z;
查询结果为a,c,e
各位老师有好的做法可以也帮忙分享下,谢谢{:1_919:}

lisongmei 发表于 2024-7-12 18:13

join    union

lcg2014 发表于 2024-7-12 18:25

这样得到的混乱数据有什么意义?

liyitong 发表于 2024-7-12 18:34

这样的话,每个表里面的条目数得一致啊。
然后,用个视图吧

下雪天的小乞丐 发表于 2024-7-12 18:59

select distinct x.1,y.1,z.1 from x x
left join y y on 1=1
left join z z on 1=1
笛卡尔积关联,这个如果数据量大会比较站资源,数据量少无所谓

lastmu 发表于 2024-7-12 19:56

如果是把x,y,z表中的第1个字段的内容竖向拼接成1维表,用union all

风子是我 发表于 2024-7-12 20:32

SELECT x.第1个字段
FROM x
WHERE x.第1个字段 LIKE 'a%'
UNION
SELECT y.第1个字段
FROM y
WHERE y.第1个字段 LIKE 'c%'
UNION
SELECT z.第1个字段
FROM z
WHERE z.第1个字段 LIKE 'e%'

meder 发表于 2024-7-13 01:03

这个话题不错,我也想请教一下来着

ahehaoyu 发表于 2024-7-13 08:56

有了GPT就懒得思考了{:301_1007:}

以下是GPT的回答你可以试试

要在一个查询结果中显示来自没有关系的多张表的字段内容,你可以使用SQL中的`UNION`操作符。`UNION`可以将多个`SELECT`查询的结果合并成一个结果集,并且会自动去除重复的记录。如果你不希望去除重复的记录,可以使用`UNION ALL`。

以下是具体的查询示例:

SELECT x.column1 AS 字母
FROM x
UNION ALL
SELECT y.column1
FROM y
UNION ALL
SELECT z.column1
FROM z;

这个查询会从表`x`中选择第一个字段的内容,再从表`y`中选择第一个字段的内容,最后从表`z`中选择第一个字段的内容,并将这些内容合并成一个结果集。

如果你还需要显示来自这些表的其他字段,可以对每个`SELECT`语句进行相应的扩展。例如,如果你还需要显示每个表的第二个字段,可以这样写:

SELECT x.column1 AS 字母, x.column2 AS 其他字段
FROM x
UNION ALL
SELECT y.column1, y.column2
FROM y
UNION ALL
SELECT z.column1, z.column2
FROM z

这样,查询结果中不仅会显示每个表的第一个字段的内容,还会显示相应的第二个字段的内容。

Kls673M 发表于 2024-7-13 10:09

没有关联, 你怎么知道那个数据是跟那个有关系的呢, 即使查出来也没有意义吧
页: [1] 2
查看完整版本: 如何利用查询语句将没有关联的数据表在一个查询结果中显示