SQL。查询多表

时间:2014-02-22 16:33:12

标签: sql

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

我有7张桌子。

page1_table
page2_table
page3_table
page4_table
page5_table
page6_table
page7_table

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

我需要一个获取所有*条件的查询;

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

2 个答案:

答案 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']."'"

答案 1 :(得分: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']."'"