Внутренний запрос SQLlite, дающий абсурдные результаты - PullRequest
0 голосов
/ 22 апреля 2020

Я пытаюсь запустить пример, где я хочу знать имя менеджера каждого сотрудника, но я не вижу все строки.

Структура таблицы

CREATE TABLE IF NOT EXISTS t1 (
    staff_number INTEGER PRIMARY KEY,
    fname VARCHAR(20),
    lname VARCHAR(30),
    gender CHAR(1),
    country VARCHAR(30),
    manager_id INTEGER,
    joining DATE)

[(10, 'piyush', 'Bansal', 'M', 'Canada',16,'2014-03-28'),
 (16, 'gillbart', 'Gates', 'M', 17,'United States','1980-10-28'),
 (17, 'amezaa', 'Craft', 'F', 19,'Japan','2016-03-14'),           
 (19, 'Marbles', 'IsaDog', 'F','United States',20, '2018-11-03'),
 (12, 'Maks', 'Demin', 'M','United States',16,'2018-11-03'),
 (20, 'Sean', 'Hartrich', 'M','United States',19,'2014-02-16'),
 (24, "Sam", "theBrit", "M","United Kingdom",10,'2014-02-16')]

Запрос

SELECT e.fname ,m.fname FROM t1 e INNER JOIN t1 m ON e.manager_id = m.staff_number

Выход :

('piyush', 'gillbart')
('Maks', 'gillbart')
('Marbles', 'Sean')
('Sean', 'Marbles')
('Sam', 'piyush')

Запись о Билле и Брене в качестве сотрудника и менеджера здесь отсутствует. Любые подсказки, что здесь происходит ??

Ожидаемый результат :

('piyush', 'gillbart')
('Maks', 'gillbart')
('Marbles', 'Sean')
('Sean', 'Marbles')
('Sam', 'piyush')
('gillbart','amezza')
('amezza','Marbles')

1 Ответ

0 голосов
/ 22 апреля 2020

В двух строчках вашего скрипта есть ошибка:

(16, 'gillbart', 'Gates', 'M', 17, 'United States', '1980-10-28 '),

(17,' amezaa ',' Craft ',' F ', 19,' Japan ',' 2016-03-14 '),

Колонка значение для страна вместо manager_id .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...