Php 按顺序从多个表中全选,无重复行

Php 按顺序从多个表中全选,无重复行,php,mysql,Php,Mysql,我一直在找这个,但我没有找到我需要的。我正在创建一个管理页面,需要从php接口访问db值 我需要从许多表中获取所有行。首先,我尝试了: SELECT * FROM t1, t2, t3, t4 但这是重复行多次,有些奇怪。。。第一个表有8行,第二个表也有8行,第三个表有7行,第四个表有1行。总共有24行,但如果执行该查询,将得到448行。。。为什么? 假设我有4个表,我想在一个查询中获取所有数据,按照我在查询中放置表的顺序获取列,但不重复。。。没有条件,只需获取所有数据,如我进行4次查询: S

我一直在找这个,但我没有找到我需要的。我正在创建一个管理页面,需要从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个查询,但仍然得到相同的结果?(无重复数据)

如我在评论中所说;您正在执行一个
交叉联接
。不要那样做


但一般来说,如果要排除重复项,可以
选择DISTINCT…

从t1、t2、t3、t4中选择*
在4个表之间创建隐式“联接”。因为你不使用过滤器,所以它会转换成四个表的笛卡尔积。如果所有表都有相同的结构,那么使用。啊,对了,我想类似的事情正在发生,但我从来没有听说过笛卡尔积。不,它们是不同的桌子。我可以只进行4次查询,但我想知道如何进行。为什么
UNION
不按您的要求执行?您正在执行
交叉连接。不要那样做就这样<代码>选择与t1、t2、t3、t4不同的*行
?嗯,我仍然可以看到448行。它们必须不同。
从t1、t2中选择不同的id…
的结果是什么?可以,但因为在4个表中只有1列名为id。问题是加入他们。现在我知道了问题所在,我想知道是否有可能在不连接多个表的情况下从多个表中获取数据。我不能使用它,因为这些表有不同的列。