按顺序从多个表中选择所有表,不包含重复行


select all from multiple tables in a ordered way without duplicate rows

我一直在找这个,但没有找到我需要的。我正在创建一个管理页面,我需要从php接口访问db值。

我需要从许多表中得到所有的行。我第一次尝试:

SELECT * FROM t1, t2, t3, t4

但这是多次重复行,有些奇怪。。。第一个表有8行,第二个也有8行、第三个7行和第四个1行。总共有24行,但如果我执行该查询,我会得到448行。。。为什么?

假设我有4个表,我想在一个查询中获得所有数据,按照我在查询中放置表的顺序获得列,但没有重复。。。没有任何条件,只需获取所有数据,就像我进行4次查询一样:

SELECT * FROM t1
SELECT * FROM t2
SELECT * FROM t3
SELECT * FROM t4

如果我这样做,没有数据重复。。。为什么?

如何合并这4个查询,但仍然得到相同的结果?(无重复数据)

就像我在评论中说的那样;您正在执行cross join。不要那样做!

但一般来说,如果您想排除重复项,可以使用SELECT DISTINCT ...