Я пытаюсь создать хранимую процедуру, которая принимает динамическое число таблиц и объединяет их.
SELECT a.Account
FROM Database.Accounts a
JOIN (SELECT Table_Name FROM Database.TableStrings WHERE Row = 1) b ON a.Account = b.Account
JOIN (SELECT Table_Name FROM Database.TableStrings WHERE Row = 2) c ON a.Account = c.Account
JOIN (SELECT Table_Name FROM Database.TableStrings WHERE Row = 3) d ON a.Account = d.Account
...
/*Where the number of joins is equal to COUNT(Table_Name) FROM Database.TableStrings*/
или
first = SELECT a.Account
FROM Database.Accounts a
JOIN (SELECT Table_Name FROM Database.TableStrings WHERE Row = 1) b ON a.Account = b.Account
second = SELECT a.Account
FROM first a
JOIN (SELECT Table_Name FROM Database.TableStrings WHERE Row = 2) b ON a.Account = b.Account
...
Ниже приведен пример таблиц и ожидаемого результата:
---Database.Accounts---
Account (Integer)
------------------------
111
222
333
444
555
---Database.TableStrings---
Table_Name (String):
------------------------
'Database.HasPhoneNumber'
'Database.HasEmail'
'Database.HasBankAccount'
---Database.HasPhoneNumber---
Account (Integer)
------------------------
111
444
---Database.HasEmail---
Account (Integer)
------------------------
111
222
---Database.HasBankAccount---
Account (Integer)
------------------------
111
222
555
С примерами таблиц ожидаемый результат будетСчет 111.
Мне трудно представить, как это сделать в хранимой процедуре, если это вообще возможно.