releases.studio_id
and releases.publisher_id
both refer to companies.id
. I tried
CREATE VIEW v_releases AS
SELECT releases.id AS 'id',
games.name AS name,
companies.name AS studio,
companies.name AS publisher
FROM releases
Left JOIN games ON releases.game_id = games.id
Left JOIN companies ON releases.studio_id = companies.id
AND releases.publisher_id = companies.id;
but the resulting view shows mostly null in studio_id
and publisher_id
where each record should contain references. Testing
CREATE VIEW v_releases AS
SELECT releases.id AS 'id',
games.name AS name,
companies.name AS studio,
companies.name AS publisher
FROM releases
Left JOIN games ON releases.game_id = games.id
Left JOIN companies ON releases.studio_id = companies.id;
results in strangely having publisher_id
as an exact copy of the studio_id
column, while the studio_id
column has all correct data. How to create a view with correct references from these two foreign keys?
When they are different you need to join companies twice, to catch each name
CREATE VIEW v_releases AS
SELECT releases.id AS 'id',
games.name AS name,
c1.name AS studio,
c2.name AS publisher,
FROM releases
Left JOIN games ON releases.game_id = games.id
Left JOIN companies c1 ON releases.studio_id = c1.id
Left JOIN companies c2 ON releases.publisher_id = c2.id;