多对多关键查询怎么查

生活 2019-10-01 14:03:17 263

本文收集整理关于多对多关键查询怎么查的相关议题,使用内容导航快速到达。

内容导航:

  • Q1:MySQL多对多的多表查询
  • Q2:sql语句多对多查询
  • Q3:ORACLE多对多关系查询
  • Q4:sql 多对多查询
  • Q1:MySQL多对多的多表查询

    一使用SELECT子句进行多表查询
    SELECT 字段名 FROM 表1,表2 … WHERE 表1.字段 = 表2.字段 AND 其它查询条件
    SELECT a.id,a.name,a.address,a.date,b.math,b.english,b.chinese FROM tb_demo065_tel AS b,tb_demo065 AS a WHERE a.id=b.id
    注:在上面的的代码中,以两张表的id字段信息相同作为条件建立两表关联,但在实际开发中不应该这样使用,最好用主外键约束来实现
    二使用表的别名进行多表查询
    如:SELECT a.id,a.name,a.address,b.math,b.english,b.chinese FROM tb_demo065a,tb_demo065_telb WHERE a.id=b.id AND b.id=$_POST[textid]
    SQL语言中,可以通过两种方式为表指定别名
    第一种是通过关键字AS指定,如
    SELECT a.id,a.name,a.address,b.math,b.english,b.chinese FROM tb_demo065 AS a,tb_demo065_tel AS b WHERE a.id=b.id
    第二种是在表名后直接加表的别名实现
    SELECT a.id,a.name,a.address,b.math,b.english,b.chinese FROM tb_demo065a,tb_demo065_telb WHERE a.id=b.id
    使用表的别名应注意几下几点
    (1)别名通常是一个缩短了的表名,用于在连接中引用表中的特定列,如果连接中的多个表中有相同的名称列存在,必须用表名或表的别名限定列名
    (2)如果定义了表的别名就不能再使用表名
    三合并多个结果集
    SQL语言中,可以通过UNION 或 ALL将多个SELECT语句的查询结果合并输出,这两个关键字的使用说明如下:
    UNION:利用该关键字可以将多个SELECT 语句的查询结果合并输出,并删除重复行
    ALL:利用该关键字可以将多个SELECT 语句的查询结果合并输出,但不会删除重复行
    在使用UNION或ALL关键字将多个表合并输出时,查询结果必须具有相同的结构并且数据类型必须兼容,另外使用UNION时两张表的字段数量也必须相同,否则会提示SQL语句有错误。
    e.x:SELECT id,name,pwd FROM tb_demo067 UNION SELECTuid,price,date FROM tb_demo067_tel
    四简单嵌套查询
    子查询:子查询是一个SELECT查询,返回单个值且嵌套在SELECT、INSERT、UPDATE和DELETE语句或其它查询语句中,任何可以使用表达式的地方都可以使用子查询.
    SELECT id,name,sex,date FROM tb_demo068 WHERE id in(SELECT id FROM tb_demo068 WHERE id=$_POST[test])
    内连接:把查询结果作为WHERE子句的查询条件即称为内连接
    五复杂的嵌套查询
    多表之间的嵌套查询可以通过谓词IN实现,语法格式如下:
    test_expression[NOT] IN{
    subquery
    }
    参数说明:test_expression指SQL表达式,subquery包含某结果集的子查询
    多表嵌套查询的原理:无论是多少张表进行嵌套,表与表之间一定存在某种关联,通过WHERE子句建立此种关联实现查询wWW&.yIjITao.Com

    Q2:sql语句多对多查询

    select * from booka join (select cid,count(1) as [count] fromcategory group by cid) b where a.id=b.cid

    Q3:ORACLE多对多关系查询

    SELECT A.AID, B.BID
    FROM B
    LEFT JOIN AB
    ON (B.BID = AB.BID AND AB.AID = A1)
    LEFT JOIN A
    ON (AB.AID = A.AID)
    ORDER BY B.BID

    Q4:sql 多对多查询

    好几种写法,我这里就写一个算抛砖引玉吧,也算给你一个提示。
    select name from a where id in (select c.aid from c where bin in (select id from b where job in (q,r)))
    也可以直接关联到c表然后相等,这个办法应该不错,可以直接对应。

    相关文章
    宁夏高考录取结果查询2018-09-08
    火车票查询时刻表查询2018-09-28
    全国职业资格证书查询2018-10-11
    怎么快速查询本机号码2019-01-14
    如何查询电脑使用记录2019-01-15
    五行八字缺什么查询表2019-01-16
    怎么查询高速是否封路2019-01-19
    非机动车违章怎么查询2019-01-19
    移动宽带查询到期时间2019-01-20
    怎么查询飞机票座位号2019-01-20