[英]SQL join 3 tables many to many relationship
有3个表具有多对多关系:
学生们
--------------------------------
|student_id|first_name|last_name|
---------------------------------
图书
--------------
|book_id|name|
--------------
借款
--------------------
|book_id|student_id|
--------------------
查询应找到书名和相关学生。 现在查询返回0行,表中包含信息,我的错误可能是什么?
SELECT books.name AS "book name", students.*
FROM books
JOIN borrowings ON books.book_id = borrowings.book_id
JOIN students ON students.student_id = borrowings.student_id;
您的SQL应该工作。 您正在使用主键和外键吗? 如果没有,请检查是否存在数据不一致。
即在postgesql中,您可以通过以下方式修复它:
ALTER TABLE students ADD PRIMARY KEY (student_id);
ALTER TABLE books ADD PRIMARY KEY (book_id);
ALTER TABLE borrowings ADD FOREIGN KEY (book_id) REFERENCES books(book_id);
ALTER TABLE borrowings ADD FOREIGN KEY (student_id) REFERENCES students(student_id)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.