选择多个表

时间:2015-04-30 10:49:44

标签: php mysql

我陷入了一段不太明白的代码中。 我有几个不同名称但相同字段的表,但表是独立的 这样的事情:

表1

  • id
  • 用户
  • 标题

表2

  • id
  • 用户
  • 标题

我需要从两个表中获取相同的查询数据但是我失败了,我尝试使用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

致以问候和感谢

2 个答案:

答案 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)

如果不是这种情况,为什么不将一个表中的数据放入另一个表中,并且只有一个表中包含所有数据?