我陷入了一段不太明白的代码中。 我有几个不同名称但相同字段的表,但表是独立的 这样的事情:
表1
表2
我需要从两个表中获取相同的查询数据但是我失败了,我尝试使用INNER JOIN,UNION ALL,但不知道,它被误用了。 现在我有这个:
$mysites = $db->QueryFetchArrayAll("
select *
FROM table1,table2
where table1.user = table2.user AND
table1.user = 1");
foreach($mysites as $mysite){
echo $QUERY['title'];
}
但是返回了这个:
title1.table1
title2.table1
我喜欢这个:
title1.table1
title2.table1
title1.table2
title2.table2
致以问候和感谢
答案 0 :(得分:1)
您可以使用关键字UNION
,如下所示:
SELECT * FROM table1 UNION SELECT * FROM table2
此查询将从table1
中选择所有内容,并将结果与table2
中的结果合并。请注意,您必须从两个表中选择相同数量的列。此外,将根据第一个表分配列名和数据类型。
如果您想保留重复项,请添加关键字ALL
:
SELECT * FROM table1 UNION ALL SELECT * FROM table2
答案 1 :(得分:0)
这个问题非常不清楚.....
每个用户的每个表中的ID是否相同?如果是这样,INNERJOIN将提供帮助
SELECT t1.*, t2.*
FROM table1.t1
INNER JOIN table2.t2
ON t1.id = t2.id
WHERE t1.user = "1"
(如果数据可能丢失,则将INNER JOIN更改为LEFT JOIN)
如果不是这种情况,为什么不将一个表中的数据放入另一个表中,并且只有一个表中包含所有数据?