2014-02-22 70 views
1

我需要创建一个包含多个表的查询,但我并不擅长这一点。SQL。查询多表

我有7张桌子。

page1_table 
page2_table 
page3_table 
page4_table 
page5_table 
page6_table 
page7_table 

所有表都有行用户ID作为主要和状态。

我将需要一个查询,获取所有*这是条件;

WHERE status = 'No' AND userid = '".$_SESSION['userid']."'. 

回答

1

你的表的格式还不清楚,但如果他们都具有相同的结构,可以联合他们一起在一个CTE和之后的应用过滤器CTE:

"select * 
from (
    select * from page1_table union all 
    select * from page2_table union all 
    select * from page3_table union all 
    select * from page4_table union all 
    select * from page5_table union all 
    select * from page6_table union all 
    select * from page7_table 
    ) t 
where t.status = 'No' AND t.userid = '".$_SESSION['userid']."'" 
+0

谢谢!这一个工作。 – Napsters

+0

非常欢迎您先生! :) –

1

尝试与INNER JOIN查询

"SELECT * 
FROM page1_table a 
INNER JOIN page2_table b 
ON a.userid = b.userid 
INNER JOIN page3_table c 
ON b.userid = c.userid 
INNER JOIN page4_table d 
ON c.userid = d.userid 
INNER JOIN page5_table e 
ON d.userid = e.userid 
INNER JOIN page6_table f 
ON e.userid = f.userid 
INNER JOIN page7_table g 
ON f.userid = g.userid 
WHERE a.status = 'No' 
AND a.userid = '".$_SESSION['userid']."'" 
+0

感谢您的快速回答。忘记我需要工会。 – Napsters