I would recommend not mixing the old-style (table1, table2, table3) JOIN syntax, and the newer ANSI JOIN syntax (INNER JOIN, LEFT JOIN). I would go with the NEW, standardized ANSI JOIN all the time (much clearer, more intuitive, less risk of an accidental cartesian product).
So use this:
FROM
dbo.T_COMPANY A
INNER JOIN
dbo.T_PROPERTY_DEFINITION B ON A.company_id = B.company_id -- or whatever
Also, I believe you cannot join a single table C to two separate other tables (A and B) in a single JOIN..... so this is most likely invalid:
LEFT JOIN [T_PROPERTY_VALUE] C
ON B.property_id = C.property_id AND A.company_id = C.company_id
You need to find another way to join those three tables so that the JOINs work - since you're giving us all the info we need, I can only guess - this would be one possible JOIN (join table A to C, and then in a second step C to B) :
SELECT
A.company_id,
B.property_code,
ISNULL(C.value, B.default_value) as [value]
FROM
dbo.T_COMPANY A
LEFT JOIN
dbo.[T_PROPERTY_VALUE] C ON A.company_id = C.company_id
LEFT JOIN
dbo.T_PROPERTY_DEFINITION B ON B.property_id = C.property_id
Depending on your real needs, you might be able to replace one of the LEFT JOIN by an INNER JOIN
T_COMPANYcontain a column namedcompany_id?