[英]How to get data by using different column values refrencing same table
我有两个表:
create table
books (
id int
,bookname text
);
create table
users(
id int
,name text
,book_1 int
,book_2 int
,book_3 int
);
现在,“ book_1”,“ book_2”,“ book_3”包含表“ books”的ID。
我正在尝试使用join创建一个查询,以使用用户名获取所有三本书的名称。
我可以得到一个书名,但是我将如何获得所有三本书的名呢?
SELECT user.name
,books.name
FROM user LEFT JOIN books ON books.id=user.book_1;
(这给了我一本书的细节)
使用PostgreSQL。
我想将结果排成一行。 喜欢
username, book_1_name, book_2_name, book_3_name
不需要多行。
您可以使用子查询得到BOOKNAME每个用户名的单行( 如果ID在桌书是唯一的 )
select name username
,(select bookname from books where id=book_1) book1_name
,(select bookname from books where id=book_2) book2_name
,(select bookname from books where id=book_3) book3_name
from users
SELECT user.name
,books.name
FROM user LEFT JOIN books ON books.id=user.book_1
OR books.id=user.book_2
OR books.id=user.book_3;
加入所有id's
这可能对您有帮助
SELECT user.name
,books.name
FROM user LEFT JOIN books ON books.id in (select id from books)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.