Как насчет чего-то вроде:
SELECT *
from accounttable
left join peopletable ON (accounttype = 'person' AND peopletable.id = accounttable.person_id)
left join companytable ON (accounttype = 'company' AND companytable.id = accounttable.company_id)
Я объединю обе таблицы, поэтому у вас будут поля всех трех таблиц в выходных данных.Поля peopletable
будут NULL
, если accounttype != 'person'
, а поля companytable
будут NULL
, где accounttype != 'company'
.
. Подробнее о синтаксисе LEFT JOIN
можно узнать в некоторых местах.как здесь ...