用于从两个相关表获取数据的sql查询

用于从两个相关表获取数据的sql查询,sql,database,n-tier-architecture,Sql,Database,N Tier Architecture,我有两张桌子,员工和存货。一名员工可以拥有零个或多个库存。 我想列出员工信息以及最多一个库存信息 存货盘点属于一名员工 员工表 库存表 期望输出 在这种情况下,我可以使用什么sql查询?试试这个: SELECT emp_num, last_name, MAX(inv_num) AS invnum, COUNT(inv_num) AS inv_count FROM employee e LEFT OUTER JOIN inventory i ON e.emp_num = i.emp_num GRO

我有两张桌子,员工和存货。一名员工可以拥有零个或多个库存。 我想列出员工信息以及最多一个库存信息 存货盘点属于一名员工

员工表 库存表 期望输出 在这种情况下,我可以使用什么sql查询?

试试这个:

SELECT emp_num, last_name, MAX(inv_num) AS invnum, COUNT(inv_num) AS inv_count
FROM employee e LEFT OUTER JOIN inventory i ON e.emp_num = i.emp_num
GROUP BY e.emp_num, e.last_name

你可以这样做

Select E.Emp_Num,
       e.Last_name,
       MIN(Inv_Num) AS OldestInv,
       COUNT(Inv_Num) AS TotalInv
FROM Employee E
    LEFT OUTER JOIN Inventory I
        (E.Emp_Num = I.Emp_Num)
GROUP BY E.Emp_Num, E.Last_Name
这将为您提供最低发票号和总数量。左外连接是关键

SELECT 
    e.emp_num,
    e.last_name,
    IFNULL(MAX(i.inv_num),'-') AS 'invnum',
    COUNT(i.inv_num) AS 'count(inv_num)'
FROM
    employee e LEFT JOIN inventory i
    ON e.emp_num = i.emp_num
GROUP BY
    e.emp_num, e.last_name
SELECT emp_num, last_name, MAX(inv_num) AS invnum, COUNT(inv_num) AS inv_count
FROM employee e LEFT OUTER JOIN inventory i ON e.emp_num = i.emp_num
GROUP BY e.emp_num, e.last_name
Select E.Emp_Num,
       e.Last_name,
       MIN(Inv_Num) AS OldestInv,
       COUNT(Inv_Num) AS TotalInv
FROM Employee E
    LEFT OUTER JOIN Inventory I
        (E.Emp_Num = I.Emp_Num)
GROUP BY E.Emp_Num, E.Last_Name
SELECT 
    e.emp_num,
    e.last_name,
    IFNULL(MAX(i.inv_num),'-') AS 'invnum',
    COUNT(i.inv_num) AS 'count(inv_num)'
FROM
    employee e LEFT JOIN inventory i
    ON e.emp_num = i.emp_num
GROUP BY
    e.emp_num, e.last_name