2015-04-30 84 views
0

我困在一段不太明白的代码中。 我有不同的名称,但相同的字段数表,但表是独立 类似的东西:SELECT Multiple Tables

table1的

  • 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

问候和感谢

+0

你尝试过'选择表1 *,表2 *'。? –

+0

什么是$ mysites和$ QUERY?他们是否定义?请注意,案例与PHP变量有关。你在用什么课? – halfer

+0

嗨,感谢您的评论,我试过这个(选择table1。*,table2。*),但它给出了相同的结果。 我已更正变量$ mysites 有没有更多的想法? – Esweb

回答

1

您可以使用关键字UNION这样的:

SELECT * FROM table1 UNION SELECT * FROM table2 

该查询将从table1选择一切,其结果与那些从table2合并。请注意,您必须从两个表格中选择相同数量的列。此外,列名和数据类型将根据第一个表分配。

如果您想保留重复添加关键字ALL

SELECT * FROM table1 UNION ALL SELECT * FROM table2 
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如果数据可能会丢失)

如果不是的话,为什么不把数据从一个表到另一个,并且只有一张包含所有数据的表格?

+0

这不会返回任何值... 每个表处理大量的数据,需要将它们分成2个不同的表。 感谢您的回答 – Esweb