dbTalk Databases Forums  

Select statement help

comp.databases.ms-sqlserver comp.databases.ms-sqlserver


Discuss Select statement help in the comp.databases.ms-sqlserver forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
krusz10@hotmail.co.uk
 
Posts: n/a

Default Select statement help - 09-20-2007 , 10:47 AM






I have a table (tableA) that lists a number of other tables on the
same database. I want to search each table listed in tableA for an
existence of an known entry and then display that entry and the table
its in
I can do it in other scripting languages but I'm new to SQL. Can you
help

I sort of want to do the following
Select * from everything_in(select tablename from tableA) where entry
= 'fred'


Reply With Quote
  #2  
Old   
Erland Sommarskog
 
Posts: n/a

Default Re: Select statement help - 09-20-2007 , 04:31 PM






(krusz10 (AT) hotmail (DOT) co.uk) writes:
Quote:
I have a table (tableA) that lists a number of other tables on the
same database. I want to search each table listed in tableA for an
existence of an known entry and then display that entry and the table
its in
I can do it in other scripting languages but I'm new to SQL. Can you
help

I sort of want to do the following
Select * from everything_in(select tablename from tableA) where entry
= 'fred'
Sounds like you have a bad database design. Normally, each table should
describe a unique entity, why a query like your would not be meaningful
in most cases. (The one exception I can think of is auditing columns that
could appear in all tables.)

The query to write is:

WITH all_tables AS (
SELECT ...
FROM tblA
UNION ALL
SELECT ...
FROM tblB
...
)
SELECT ... FROM all_tables WHERE col = 'fred'

If you want to work from yor table of table names, you would need to
generate the query dynamically.


--
Erland Sommarskog, SQL Server MVP, esquel (AT) sommarskog (DOT) se

Books Online for SQL Server 2005 at
http://www.microsoft.com/technet/pro...ads/books.mspx
Books Online for SQL Server 2000 at
http://www.microsoft.com/sql/prodinf...ons/books.mspx


Reply With Quote
  #3  
Old   
krusz10@hotmail.co.uk
 
Posts: n/a

Default Re: Select statement help - 09-21-2007 , 05:57 AM



On 20 Sep, 22:31, Erland Sommarskog <esq... (AT) sommarskog (DOT) se> wrote:
Quote:
(krus... (AT) hotmail (DOT) co.uk) writes:
I have a table (tableA) that lists a number of other tables on the
same database. I want to search each table listed in tableA for an
existence of an known entry and then display that entry and the table
its in
I can do it in other scripting languages but I'm new to SQL. Can you
help

I sort of want to do the following
Select * from everything_in(select tablename from tableA) where entry
= 'fred'

Sounds like you have a bad database design. Normally, each table should
describe a unique entity, why a query like your would not be meaningful
in most cases. (The one exception I can think of is auditing columns that
could appear in all tables.)

The query to write is:

WITH all_tables AS (
SELECT ...
FROM tblA
UNION ALL
SELECT ...
FROM tblB
...
)
SELECT ... FROM all_tables WHERE col = 'fred'

If you want to work from yor table of table names, you would need to
generate the query dynamically.

--
Erland Sommarskog, SQL Server MVP, esq... (AT) sommarskog (DOT) se

Books Online for SQL Server 2005 athttp://www.microsoft.com/technet/prodtechnol/sql/2005/downloads/books...
Books Online for SQL Server 2000 athttp://www.microsoft.com/sql/prodinfo/previousversions/books.mspx
----------------------------------------------------------------------------------------------------------------------------------------------

Thanks for the prompt reply. Not sure it would help unless I could
probably use variables in some way.


The database is a back end DB to a Microsoft system (SMS). There are a
number of collection tables that perform different tasks against there
contents. Listed in the DB are unique objects that are linked by a
primary key across the tables. These unique objects can exist in any
number of the tables depending on what task is required.

What I was hoping to get is a list of tables (tasks) that a unique
object is listed in, and the list of tables I want to search in (which
change daily) are found in tblA.

Hope this makes things clearer.
Can it be done in a single query?

In simple terms a script would look something like this:

Foreach $tblname in ('select tablename from tblA')

do

If true (Select objectname from $tblname where objectname = 'FRED')
Print $tblname








Reply With Quote
  #4  
Old   
Erland Sommarskog
 
Posts: n/a

Default Re: Select statement help - 09-21-2007 , 04:23 PM



(krusz10 (AT) hotmail (DOT) co.uk) writes:
Quote:
The database is a back end DB to a Microsoft system (SMS). There are a
number of collection tables that perform different tasks against there
contents. Listed in the DB are unique objects that are linked by a
primary key across the tables. These unique objects can exist in any
number of the tables depending on what task is required.

What I was hoping to get is a list of tables (tasks) that a unique
object is listed in, and the list of tables I want to search in (which
change daily) are found in tblA.

Hope this makes things clearer.
Can it be done in a single query?
No. A query always exactly define set of tables and columns. If you don't
know which tables that you want to access, you will need to build the
query dynamically along the pattern in my first post. You could build
that query in T-SQL or in a client language, whatever your preference.

But once you know which table to query, you can query all at once if you
like. (Running a loop and querying one table at a time is not likely to
have much extra cost.)

--
Erland Sommarskog, SQL Server MVP, esquel (AT) sommarskog (DOT) se

Books Online for SQL Server 2005 at
http://www.microsoft.com/technet/pro...ads/books.mspx
Books Online for SQL Server 2000 at
http://www.microsoft.com/sql/prodinf...ons/books.mspx


Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.3
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.