I want to get some results via query simillar to:
SELECT
* FROM
users LEFT JOIN
IF (users.type = \'1\', \'private\',\'company\') AS details ON
I'm sure this is already resolved, but for people with a similar problem.
You can also try to multiple left joins to get all the data
SELECT *, IF (users.type = 1, p.name, c.name) AS name FROM users
LEFT JOIN private AS p ON (users.type = 1 AND users.id = p.user_id)
LEFT JOIN company AS c ON (users.type != 1 AND users.id = c.user_id)