I tried that and maybe I'm doing something wrong but...

-I have to select the same number of columns...for each UNION
-And each of the records from the union fall under the same column headings as the first SELECT...


I even tried to define column aliases..
SELECT `running` as `running_blah`...

-James



At 1:03 PM -0400 4/26/05, [EMAIL PROTECTED] wrote:
james tu <[EMAIL PROTECTED]> wrote on 04/26/2005 12:06:34 PM:

 I have four different activities.  Each has its own set of data that
 I want to save.  So, I made four different tables to hold the saved
 data. Each record also has 'keywords' field (essentially this is the
 only field that all tables have in common.)

 Later on, I want to search all the keywords in these tables...and
 then retrieve the saved information from the four different tables.

 Question:
 Should I just search each of the tables individually?


Or should I create another table that will hold the keywords, the tablename, and the ID of the saved record in that particular table...and then perform my search on this NEW table?

 Thanks.
 --
 -James



I would properly index each table and UNION the results of the 4 searches. Have you considered creating a Full Text index for your keyword fields?

Say your 4 tables are called: running, swimming, jumping, and walking

SELECT 'running', <column list>
FROM running
WHERE <keywords search condition>
UNION
SELECT 'swimming', <column list>
FROM swimming
WHERE <keywords search condition>
UNION
SELECT 'jumping', <column list>
FROM jumping
WHERE <keywords search condition>
UNION
SELECT 'walking', <column list>
FROM walking
WHERE <keywords search condition>;

I used the first column only to identify which table each match comes from. That way if you have records in each table with matching PK values, you know which table to go back to in order to get any additional information. The only problem with this type of search is that your <column list> columns must be compatible between each of the tables. If the second column is numeric in your first query then the second column will be coerced to numeric for each of the remaining 3 queries. If for some reason that fails, then the whole UNION fails and you get an error.

Shawn Green
Database Administrator
Unimin Corporation - Spruce Pine

Shawn Green
Database Administrator
Unimin Corporation - Spruce Pine


--
-James Tu
-----------------------------------
ESI Design
111 Fifth Avenue 12th floor
New York, NY 10003
(212) 989-3993 ext. 357
(212) 673-4061 (fax)
-----------------------------------

Reply via email to