SQL Server : query code
I think something like the following will work.  You already have the database name (sys.databases.name) in your first query, so you can use this to join to MSDB.dbo.BackupSet.  Beyond that, you are using an aggregate function in your second query.  So you simply need to group by the columns you are selecting from the first query.

SELECT
db.name AS DBName,
mf.type_desc AS Filetype,
mf.Physical_Name AS Location,
(mf.size*8)/1024 AS SizeMB,
DATABASEPROPERTYEX(db.name, 'Status') AS Recovery,
CONVERT( SmallDateTime , MAX(back.Backup_Finish_Date)) as Last_Backup, 
DATEDIFF(d, MAX(back.Backup_Finish_Date), Getdate()) as Days_Since_Last
FROM sys.master_files mf
INNER JOIN sys.databases db
    ON db.database_id = mf.database_id
INNER JOIN MSDB.dbo.BackupSet back
    ON back.Database_Name = db.name
GROUP BY db.name, mf.type_desc, mf.Physical_Name, mf.size


In the future, please post the queries that you have tried so far so that we can help point out where they may have gone wrong.