我的多重连接存在问题,错误:
> ERROR: table name "b" specified more than once
我正在尝试从3个表中获取数据:
SELECT b.id bi, b.book_id bb, b.title bt, b.isbn bi,
b.publisher bp, b.author ba, b.cover bc, b.catalog bca,
b.stock bs, b.dateadded bd, b.year bye, c.name cn,c.id cid,
m.nik nik, m.name nm, m.department dept,p.borrow_id bid, p.date pdt,
p.datereturn pdr, p.status st
FROM library.borrow p,library.book, library.category
JOIN library.book b ON b.category_id=category.id
JOIN library.book b ON p.book_id=b.id
JOIN library.member m on cast (p.user_id as character varying) = m.nik
答案 0 :(得分:0)
显然,您使用相同的表别名两次,这是不允许的
使用不同的别名,或只加入library.book
一次,具体取决于您的未知要求。
...
JOIN library.book b1 ON b1.category_id = category.id
JOIN library.book b2 ON b2.id = p.book_id
...
调整查询的其余部分。
此外,在:
之间没有连接条件library.borrow p, library.book, library.category
删除多余的library.book
并为library.category
添加加入条件
交叉连接三个表几乎总是错误的,并快速生成巨大的结果集。
最后,别名c
无处可寻。你的查询很乱。