鉴于这些表格:
TABLE Stores (
store_id INT,
store_name VARCHAR,
etc
);
TABLE Employees (
employee_id INT,
store_id INT,
employee_name VARCHAR,
currently_employed BOOLEAN,
etc
);
Run Code Online (Sandbox Code Playgroud)
我想为每家商店列出15名雇员最长的员工(假设15 employee_id名员工最低),或者如果有15名员工,则列出所有员工currently_employed='t'.我想用join子句来做.
我发现很多人这样做的例子只有 1行,通常是最小或最大(单个最长雇用的员工),但我想基本上结合一个ORDER BY和一个LIMIT内部的联接.其中一些例子可以在这里找到:
我也找到了很好的例子来做这个商店(我没有,我有大约5000家商店):
我也看到你可以使用TOP而不是ORDER BY和LIMIT,而不是PostgreSQL.
我认为这两个表之间的连接子句不是唯一(或者甚至是最好的方法),如果它可以只store_id在employees表的内部工作,那么我会对其他方法持开放态度.之后可以随时加入.
由于我对SQL很陌生,我想要任何理论背景或其他解释可以帮助我理解工作原理.