您的位置:首页 > 数据库 > MySQL

mysql查询语句

2015-08-16 20:08 561 查看
  如果两个表格是多对多的关系,这时候要自己建立一个中间表格,这个中间表格包含这两个表的主键作为参数

use test
select id from ddxx where czid =222;
select a.czmc,id,b.status,dj from station a,ddxx b where a.czdm=b.czid
select csmc,csdm from station c where c.czdm IN
(select b.sid from stationjoinline b where b.lid IN" )

select * from station c where c.czdm IN(
select b.sid from stationjoinline b where b.lid='1'
select a.xlid from line a where a.xlmc='京广线'
)

select b.sid from stationjoinline b where b.lid IN
(select a.xlid from line a where a.xlmc='京广线')

多对多查询
select * from station c where c.czdm IN(
select b.sid from stationjoinline b where b.lid IN
(select a.xlid from line a where a.xlmc='京广线')
)




1.对应要java中的时候sql语句是要修改的,改成

2.如果字符串太长的话,可以分拆,使用的方法是:“+”放在两端代码中间

3.有append的方法的

StringBuffer s=new StringBuffer();
s.append("update ddxx a INNER JOIN");
s.append("(select id from ddxx where czid  not in(select DISTINCT czdm from station)) as b");
s.append(" ON a.id=b.id set czid="+czid);


复杂SQL语句

单一表:注解,BaseDAO已经大部分实现

两表,一对多:建表的时候,在多的那一端,放一个外键使用原生sql去做复杂查询

复杂的增删改: SQLQuery q2 = gs().createSQLQuery(sql2);

int b = q2.executeUpdate();

两表,多对多:建一个中间表,拆分成两个一对多,再使用复杂查询去解决问题
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: