username11 发表于 2021-4-20 14:02

求助,sql应该怎么写

我有表A,B,C三张表
B表作为一个连接A表与C表的一个连接
A B C 关联关系为A.bbatId=B.bbatId,B.acctId=C.acctId
想要的结果就是A表有多少条数据就展示多少条,然后附加上C表对应的数据,不需要展示A表其关联的数据

我现在用的是select bb.BBAT_NAME,bb.BBAT_REMARK,zl.ISBN
from BOOK_BATCH bb,BOOK_DETAIL bd,ZY_LITERATURE zl where bb.BBAT_ID=bd.BBAT_ID
and bd.ZMLI_ID=zl.ZMLI_ID;


可是这不是我要的结果~~~大佬们应该怎么写呢

红客联盟红哥 发表于 2021-4-20 14:09

参考易语言

RoyPenn 发表于 2021-4-20 14:11

不知道你是什么数据,a表和b表之间 用 left join,反正大致原理都一样,用左连接。你百度看看,你的数据库怎么写

九分叶里狼 发表于 2021-4-20 14:14

select a.*,b.something,c.something
from A a
left join B b on a.bbatId=b.bbatId
left join C c on b.acctId=c.acctId
where 1=1

username11 发表于 2021-4-20 14:14

RoyPenn 发表于 2021-4-20 14:11
不知道你是什么数据,a表和b表之间 用 left join,反正大致原理都一样,用左连接。你百度看看,你的数据库 ...

我想要的就只是A表的数据,B表是用来连接A、C两张表的,然后我现在这样使用的话就会查询出A表所关联的数据。

javazjl 发表于 2021-4-20 14:15

select bb.BBAT_NAME,bb.BBAT_REMARK,zl.ISBN
from BOOK_BATCH bb inner join BOOK_DETAIL bd on bb.BBAT_ID=bd.BBAT_ID left join ZY_LITERATURE zl onbd.ZMLI_ID=zl.ZMLI_ID

username11 发表于 2021-4-20 14:18

九分叶里狼 发表于 2021-4-20 14:14
select a.*,b.something,c.something
from A a
left join B b on a.bbatId=b.bbatId


select bb.BBAT_NAME as "bbatName",
       bb.BBAT_REMARK as "bbatRemark",
       zl.ISBN as "isbn",
       bb.BBAT_ID as "bbatId"
from BOOK_BATCH bb
         left join BOOK_DETAIL bd on bb.BBAT_ID=bd.BBAT_ID
         left join ZY_LITERATURE zl on zl.ZMLI_ID=bd.ZMLI_ID
where 1=1

不行 关联数据还是出来了

jeson_168 发表于 2021-4-20 14:24

冒昧问下,你这是什么数据库?

username11 发表于 2021-4-20 14:24

javazjl 发表于 2021-4-20 14:15
select bb.BBAT_NAME,bb.BBAT_REMARK,zl.ISBN
from BOOK_BATCH bb inner join BOOK_DETAIL bd on bb.BBAT_ ...

https://s3.jpg.cm/2021/04/20/TYo1L.png

本来BOOK_BATCH(也就是我所说的A表)只有6条数据,然后我现在也只是需要查出这6条但是要加上
ZY_LITERATURE(开始说的C表)的ISBN

惚如远行客 发表于 2021-4-20 14:26

SELECTbb.BBAT_NAME,bb.BBAT_REMARK,zl.ISBN from BOOK_BATCH bb LEFT JOIN BOOK_DETAIL bd on bb.bbatId=bd.BBAT_ID LEFT JOIN ZY_LITERATURE zl on bd.ZMLI_ID=zl.ZMLI_ID
页: [1] 2 3
查看完整版本: 求助,sql应该怎么写