如何在mysql工作台上将三个表合并在一起

sqougxex  于 2021-07-29  发布在  Java
关注(0)|答案(0)|浏览(138)

因此,我可以创建三个单独的脚本来成功地从数据库中的每个表中提取所需的数据。

SELECT StreetID, StreetName, City, State, StreetType FROM streetinfo;
SELECT Date, Street, Total_Drives FROM drives WHERE Date >= '2001-10-01' AND Date <= '2020-03-26';
SELECT EVENT_LCL_DATE, EVENT_STRT_ID, COUNT(Street_Accidents) Total_Accidents FROM accidents GROUP BY EVENT_LCL_DATE;

现在我要生成一个具有以下列名的表。。。

EventDate, StreetID, StreetName, City, State, StreetType, Total_Drives, Total_Accidents, Accident_Rate

…将它们与下面的脚本合并在一起。

SELECT
    d.Date EventDate
    d.Facility FacilityID
    as.FacilityName
    as.City
    as.State
    d.Total_Drives
    as.Total_Accidents
    as.Total_Accidents/d.Total_Drives*100000 Accident_Rate
FROM drives d
LEFT JOIN (
        SELECT a.EVENT_LCL_DATE EventDate, a.EVENT_STRT_ID StreetID, s.FacilityName, s.City, s.State, s.Label, COUNT(*) Total_Accidents
        FROM accidents a
        INNER JOIN streettinfo s ON s.StreetID = s.EVENT_STRT_ID;
        ) as
        ON as.EventDate = d.Date AND as.StreetID=d.Facility
GROUP BY 1,2;

但是,上次运行此查询时,只有eventdate、facility和total\ u drives列填充了数据。我曾尝试将d和as表内部连接起来,但当我期望d表提供的行数一样多时,这就导致了一行数据。有没有什么建议可以让这张table完全符合我的要求?我们非常感谢您的帮助。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题