mairothia Ответов: 2

Поиск одного значения в нескольких таблицах


Я разрабатываю приложение в ASP с помощью VB.net.
В этом приложении один пользователь может подать заявку только на одну из четырех заявок. Записи этих приложений помещаются в четыре таблицы, скажем, t1, t2, t3, t4.

Я хочу найти, если пользователь уже подал заявку на какое-либо приложение или нет?

Все четыре таблицы имеют разные имена столбцов, но userID (запись) будет одинаковым.

ПЛ помогите

Что я уже пробовал:

Sql = "Select FA.ApplicationID, TFA.ApplicationID, AC.ApplicationID " &
      "FROM (FreshApplications as FA  " &
      "INNER JOIN TempFreshApplications as TFA on U.UPCNo = TFA.UserID) " &
      "INNER JOIN ApplicationsForChange as AC on U.UPCNo = AC.UPCNo" &
      " where U.UPC = '" & Session("LoggedInUPCNo") & "'"

2 Ответов

Рейтинг:
2

RossMW

Попробуйте использовать оператор Union All

Видеть

https://docs.microsoft.com/en-us/sql/t-sql/language-elements/set-operators-union-transact-sql[^]

Таким образом, вы можете сделать что-то вроде

sql = "Select sum(id) as Num from
(
Select count(userid) as id from t1 where userid = " & Session("LoggedInUPCNo") & "
union all
Select count(userid) as id from t2 where userid = " & Session("LoggedInUPCNo") & "
union all
Select count(userid) as id from t3 where userid = " & Session("LoggedInUPCNo") & "
union all
Select count(userid) as id from t4 where userid = " & Session("LoggedInUPCNo") & ") t"


Рейтинг:
1

Graeme_Grant

Предупреждение: Хорошая практика заключается в том, что вы всегда должны использовать параметры, а не конкатенацию строк, независимо от того, является ли запрос частным или общедоступным. В один прекрасный день запрос может быть обнародован, и тогда он будет открыт для всех. Атаки SQL-инъекций[^], что поставит под угрозу безопасность данных.