用sql语言查询两个表的问题

来源:百度知道 编辑:UC知道 时间:2024/05/30 23:55:38
请问,怎样在mssql里面正常地查询两个表?
我在mssql的一个数据库中有两个表s和ss。s和ss已经建立了完全正确的关系。
我在mssql的查询分析器中使用“select * from s,ss”。可是查出来的却是和没有建立关系时一样的效果:两倍记录。
请问,怎样用sql查询两个表?

select * from s,ss查询的是笛卡尔积
不知道你说的“s和ss已经建立了完全正确的关系”是什么意思? 如果两个表根据某一字段相等(例如id)建立了正确的关系,那么
select * from s,ss where s.id=ss.id

2倍纪录?

select* from s,ss where s.x=ss.x
在多表查询时,两个表之间必须有一列是通用的,也就是说,在s表中有x这一列,而在ss表中也有x这一列,且当S表中X中列值等于SS表中X列的值时才可以将两个表联系起来

select * from s,ss where s.id=ss.id1
注:id为需要关联的字段,需要语句里管理,视图什么的都没用

"select * from s,ss"查询时一对多的关系,比如每个表中都有4个记录,执行的结果就是16条语句。
要查出两个表,就要写出他们的关系,比如两个表有一个字段是对应的,就要用where写出来,有两个字段对应的,也要用where写出来,这样才能正确的查出两个表的信息。

select * from s,ss 这查出来的是一个笛卡尔集。2个表的记录条数的乘积哪么多条记录。
你可以用左 右连接来关联。
select * from s left jion ss on s.id=ss.id
或者
select * from ss left jion s on s.id=ss.id
这样就可以查出你的关联。你可以根据那边是主表把那个表写在前面,或者改left为right.