mysql - SQLlite 内部连接查询给出荒谬的结果
问题描述
我正在尝试运行一个示例,我想知道每个员工的经理姓名,但我看不到所有行。
表结构
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')
此处缺少 Bill 和 Brena 作为员工和经理的条目。任何线索这里发生了什么?
预期输出:
('piyush', 'gillbart')
('Maks', 'gillbart')
('Marbles', 'Sean')
('Sean', 'Marbles')
('Sam', 'piyush')
('gillbart','amezza')
('amezza','Marbles')
解决方案
你脚本的两行有错误:
(16,'吉尔巴特','盖茨','M',17,'美国','1980-10-28'),
(17, 'amezaa' , 'Craft' , 'F', 19 ,'Japan','2016-03-14'),
country的列值改为manager_id 。
推荐阅读
- typescript - 带有通用参数列表的打字稿类型参数
- microsoft-graph-api - Microsoft Graph API UnknownError,代码为 429,“重试”为 86 秒
- ios - 通过 Swift 获取路由器的最大下载速率
- wordpress - 如何从 updraftplus 恢复 wordpess 备份文件
- unit-testing - Rspec - 如何测试嵌套服务是否被适当地实例化并在此实例上调用适当的方法
- linux - 更改文件描述符限制 rabbitmq 不起作用
- swift - 无法在 Vapor 3 中使用 Leaf 渲染计算属性
- python-3.x - 如何等到在 python3 中按下热键而不需要打开终端窗口?
- php - 当我在我的 codeigniter 中使用 count 函数时,它给了我错误
- c# - 从 DataGrid 和数据库 C# 中删除选定的行