SQL-запрос для хранимой процедуры - PullRequest
3 голосов
/ 15 мая 2011

У меня есть пять таблиц "ArtBook, Eng, Comm, Law, MGT", и каждая таблица имеет один и тот же столбец, и я хочу, чтобы найти всю информацию этой конкретной книги по ее идентификатору e.g-

select * from ArtBook,Eng,Comm,Law,mgt where @BookId=ArtBooks.BookId
or @BookId=CommBooks.BookId
or @BookId=Eng.BookId
or @BookId=Law.BookId
or @BookId=mgt.BookId

Ответы [ 3 ]

3 голосов
/ 15 мая 2011

Если во всех таблицах хранятся книги разных категорий, объедините их обратно в одну таблицу и добавьте столбец «категория». Разделение на отдельные таблицы, подобные этой, не является хорошей идеей по причинам, которые вы продемонстрировали.

1 голос
/ 15 мая 2011
select * 
from ArtBook
where BookId = @BookId
union all
select * 
from Eng
where BookId = @BookId
union all
select * 
from Comm
where BookId = @BookId
union all
select * 
from Law
where BookId = @BookId
union all
select * 
from Mgt
where BookId = @BookId
0 голосов
/ 15 мая 2011

Можно использовать оператор UNION или UNION ALL.

(SELECT * FROM ArtBook)
UNION ALL
(SELECT * FROM Eng)
...
WHERE @BookId=ArtBooks.BookId or
       @BookId=CommBooks.BookId or 
       @BookId=Eng.BookId or 
       @BookId=Law.BookId or 
       @BookId=mgt.BookId

и так далее, и так далее.Хотя вы можете подумать о реструктуризации ваших данных, чтобы облегчить подобные вещи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...