у меня два стола)
CREATE TABLE `Company` (
`companyName` TEXT,
`status` TEXT,
`extra` TEXT,
`companyId` TEXT,
`companySecondId` TEXT
CREATE TABLE `UserList` (
`userName` TEXT,
`companyId` TEXT
);
И я хотел бы присоединиться к UserList и Company с идентификатором компании
Пример данных)
companyName status extra companyId companySecondId
"CompanyA" "456" "456" "A" "A"
"CompanyB" "789" "789" "B" "A"
"CompanyC" "123" "123" "C" "E"
"CompanyD" "111" "111" "D" "D"
UserName CompanyId
"UserA" "A"
"UserB" "B"
"UserC" "C"
"UserD" "D"
Вот ситуация.
Компания может объединиться
CompanyB объединяется с A
Компания может обанкротиться
CompanyC была объединена с CompanyE, но CompanyE обанкротилась.
В этом случае я присоединяюсь вот так
select UserList.*, t1.companyName
from UserList
inner join
(select companyId,
(case when exists (select * from Company where a.companySecondId = companyId)
then (select companyName from Company where a.companySecondId = companyId)
else (select companyName from Company where a.companyId = companyId)
end) as companyName
from Company a) as t1
on UserList.companyId = t1.companyId
Если идентификатор компании каждого пользователя существует в таблице компаний с именем "companySecondId", тогда показывать название компании companySecondId
Если идентификатор компании каждого пользователя не существует в Таблице компаний с «companySecondId», вместо этого укажите companyNid companyName вместо companySecondId
Так что я могу получить такой результат
userName companyId companyName
"UserA" "A" "CompanyA"
"UserB" "B" "CompanyA"
"UserC" "C" "CompanyC"
"UserD" "D" "CompanyD"
Но я бы хотел показать со статусом и дополнительным, как это
но в случае, когда существуют ~ тогда ~ еще только вернуть один столбец Как я могу сделать это в SQLite ??
userName companyId companyName status extra
"UserA" "A" "CompanyA" "456" "456"
"UserB" "B" "CompanyA" "456" "456"
"UserC" "C" "CompanyC" "123" "123"
"UserD" "D" "CompanyD" "111" "111"