大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
//首先需要知道自己的id号,且认为存在session中的,并且已经传了过来
成都创新互联公司专注于精河网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供精河营销型网站建设,精河网站制作、精河网页设计、精河网站官网定制、成都小程序开发服务,打造精河网络公司原创品牌,更为您提供精河网站排名全网营销落地服务。
$myID = $_SESSION['id'];
$sql = "SELECT * FROM user WHERE user_class = (SELECT user_class FROM user WHERE user_id='".$myID."') AND user_id NOT IN (SELECT to_id FROM vote WHERE from_id = '".$myID."')";
SELECT user_class FROM user WHERE user_id='".$myID."' 选出我所在的班级
SELECT to_id FROM vote WHERE from_id = '".$myID."' 选出我投过的人的id
最终是选出我所在的班级,且不在我投过的id范围内的用户的信息
比如联合A B俩表\x0d\x0a\x0d\x0aselect a.*,b.* from A as a left join B as b on a.id = b.id where a.name='lileiand b.age=27 order by a.id group by a.class limit 10 ;\x0d\x0a\x0d\x0a很简单
SELECT a.A表字段名, b.B表字段名 FROM A表名 a LEFT JOIN B表名 b WHERE 条件自己写,例如(a.字段名 != '' ) ON a.字段名 = b.字段名
这种联合查询的限制是ab2表必须有一个相同的关键字,且相等
select ID from a union select level,integ from b where (条件一) and (条件二) and (条件三)
自己改条件。
用别名 , 比如 a表 有 c字段, b表也有 c字段, field('a.c as xx'), field('b.c as oo'), 至于具体join()方法你自己写吧, 方法就是用别名, 或者加上表名,这样就不会产生歧义
至少三个方法可以实现:
一、使用视图来实现多表联合查询,
例如:创建视图:create view userstoposts as select u.name,u.qq,p.post_id,p.title, p.contents, p.contents from users as u,posts as p where u.name=p.name
二、直接使用表联合查询
例如:select u.name,u.qq,p.* from users as u,posts as p where u.name=p.name
三、结合PHP语言实现
例:1、
?php
$Sql="select *from posts";
$Result=@mysql_query($Sql);
while($rows=mysql_fetch_assoc($Result)){
$sql1="select name,qq from users where name='".$rows['name']."'";
$result1=@mysql_query($sql1);
$rows1=mysql_fetch_assoc($result1);
$OUTPUT[]=array(
'name'=$rows['name'],
'qq'=$rows1['qq'],
'post_id'=$rows['post_id'],
'title'=$rows['title'],
'contents'=$rows['contents']
);
}
print_r($OUTPUT);//可以你需要的结果输出
?