Вопрос:

Как показать несколько столбцов из 3 таблиц в SQL?

sql sqlite

28 просмотра

5 ответа

1 Репутация автора

У меня есть 3 таблицы: Prestam, Book, User.

Таблица Престама

  1. Id_Prestam
  2. Date_Prest
  3. Date_Dev
  4. Ссылка Id_Book '
  5. Ссылка Id_User '

Настольная книга

  1. Id_Book
  2. заглавие

Пользователь таблицы

  1. Id_User
  2. название
  3. Фамилия

Вот мой код SQL, хотя в синтаксисе есть ошибка, а именно:

, Pr.Id_User = User.Id_User

SELECT 
    Pr.Id_Prestam, Pr.Date_Prest, Pr.Date_Dev,
    Lbr.Title,
    Usr.Name, Usr.Last Name 
FROM 
    Prestam Pr, Book Lbr, User Usr 
WHERE 
    Pr.Id_Book = Lbr.Id_Book, Pr.Id_User = Usr.Id_User

Цель состоит в том, чтобы показать мне следующее:

  • Id_Prestam
  • Date_Prest
  • Date_Dev
  • заглавие
  • название
  • Фамилия

Есть ли способ сделать это возможным?

Я слышал о создании просмотров, но я не знаю, как с этим справиться

CREATE VIEW List AS
Автор: royer Источник Размещён: 27.11.2018 09:35

Ответы (5)


1 плюс

9442 Репутация автора

Чтобы устранить эту синтаксическую ошибку, поскольку вы указали Userтаблицу, Usrвам нужно изменить ее псевдоним :

, Pr.Id_User = User.Id_User

К этому:

, Pr.Id_User = Usr.Id_User

Затем вам нужно взглянуть на использование JOINинструкции для объединения таблиц вместе. WHEREЗаявление не позволяет объединять таблицы вместе.

Автор: Elliot B. Размещён: 27.11.2018 09:37

0 плюса

1 Репутация автора

Похоже, вы можете сделать какое-то соединение на таблицах.

т.е.

select * 
from Prestam P 
inner join Book B on P.ID_Book = B.ID_Book
inner join User U on P.ID_User = U.ID_User
Автор: Matthew Размещён: 27.11.2018 09:40

0 плюса

211 Репутация автора

Используйте предложения JOIN следующим образом:

SELECT 
    Pr.Id_Prestam,
    Pr.Date_Prest,
    Pr.Date_Dev,
    Lbr.Title,
    Usr.Name,
    Usr.Last Name 
FROM Prestam Pr
JOIN Book Lbr on Pr.Id_Book = Lbr.Id_Book
JOIn User Usr on Pr.Id_User = Usr.Id_User
Автор: GMB Размещён: 27.11.2018 09:42

0 плюса

4526 Репутация автора

Присоединяйтесь к Prestam с двумя другими таблицами:

SELECT 
Prestam.Id_Prestam, Prestam.Date_Prest, Prestam.Date_Dev, 
Book.Title, 
User.Name, User.`Last Name`
FROM 
    (Prestam INNER JOIN Book ON Prestam.Id_Book = Book.Id_Book) 
        INNER JOIN User 
        ON Prestam.Id_User = User.Id_User;
Автор: forpas Размещён: 27.11.2018 09:47

0 плюса

1 Репутация автора

Решение -> измените кому на AND

SELECT 
    Pr.Id_Prestam, Pr.Date_Prest, Pr.Date_Dev,
    Lbr.Title,
    Usr.Name, Usr.Last Name 
FROM 
    Prestam Pr, Book Lbr, User Usr 
WHERE 
    Pr.Id_Book = Lbr.Id_Book AND Pr.Id_User = Usr.Id_User
Автор: royer Размещён: 27.11.2018 10:49
Вопросы из категории :
32x32