Hi,


How 'bout "not like"

these querries will always use a full tablescan though.

Quicker ways? maybe the oracle context search or something like that
anyway, but I've never used it.


Jack


                                                                                       
                          
                    "Bill Tantzen"                                                     
                          
                    <[EMAIL PROTECTED]       To:     Multiple recipients of list ORACLE-L 
<[EMAIL PROTECTED]>     
                    mn.edu>              cc:                                           
                          
                    Sent by:             Subject:     SQL Question                     
                          
                    [EMAIL PROTECTED]                                                     
                          
                    om                                                                 
                          
                                                                                       
                          
                                                                                       
                          
                    21-08-2001                                                         
                          
                    15:06                                                              
                          
                    Please respond                                                     
                          
                    to ORACLE-L                                                        
                          
                                                                                       
                          
                                                                                       
                          




Greetings!

I don't see a lot of general sql questions on this list, so if this is the
wrong place to post this sort of thing, just let me know!  This will
hopefully seem like a simple question, but I am a relative novice in sql
programming!

Here is the (simplified) scenario with three tables:

biblio table
id     integer
isbn   varchar2
title  varchar2

subject table (0 or many per id)
id      integer  (fk biblio.id)
subject varchar2

keyword table (0 or many per id)
id      integer  (fk biblio.id)
keyword varchar2

I wish to find all the id's that contain a given word in any of the varchar
fields.  My approach has been something like:

select id from biblio
where title like '%word%'
union
select id from subject
where subject like '%word%'
union
select id from keyword
where keyword like '%word%'

First question:  do you think this is a good way to do it?  Is there a
better way?
Second question, how do I do a negative search, that is, find all the id's
that DO NOT contain a given word in any of the varchar fields.  Using an
approach similar to the previous sql (using intersect instead of union)
does
not work, since there may be biblio records that do not have corresponding
subject or keyword records.

Perhaps there is not a simple query that will do the trick and I should be
using a stored procedure?

Thanks in advance for any advice!!!!
Bill

--
Please see the official ORACLE-L FAQ: http://www.orafaq.com
--
Author: Bill Tantzen
  INET: [EMAIL PROTECTED]

Fat City Network Services    -- (858) 538-5051  FAX: (858) 538-5051
San Diego, California        -- Public Internet access / Mailing Lists
--------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).




=====================================================================
De informatie verzonden in dit e-mailbericht is vertrouwelijk en is
uitsluitend bestemd voor de geadresseerde. Openbaarmaking,
vermenigvuldiging, verspreiding en/of verstrekking van deze informatie aan
derden is, behoudens voorafgaande schriftelijke toestemming van Ernst &
Young, niet toegestaan. Ernst & Young staat niet in voor de juiste en
volledige overbrenging van de inhoud van een verzonden e-mailbericht, noch
voor tijdige ontvangst daarvan. Ernst & Young kan niet garanderen dat een
verzonden e-mailbericht vrij is van virussen, noch dat e-mailberichten
worden overgebracht zonder inbreuk of tussenkomst van onbevoegde derden.

Indien bovenstaand e-mailbericht niet aan u is gericht, verzoeken wij u
vriendelijk doch dringend het e-mailbericht te retourneren aan de verzender
en het origineel en eventuele kopieën te verwijderen en te vernietigen.

Ernst & Young hanteert bij de uitoefening van haar werkzaamheden algemene
voorwaarden, waarin een beperking van aansprakelijkheid is opgenomen. De
algemene voorwaarden worden u op verzoek kosteloos toegezonden.
=====================================================================
The information contained in this communication is confidential and is
intended solely for the use of the individual or entity to whom it is
addressed. You should not copy, disclose or distribute this communication
without the authority of Ernst & Young. Ernst & Young is neither liable for
the proper and complete transmission of the information contained in this
communication nor for any delay in its receipt. Ernst & Young does not
guarantee that the integrity of this communication has been maintained nor
that the communication is free of viruses, interceptions or interference.

If you are not the intended recipient of this communication please return
the communication to the sender and delete and destroy all copies.

In carrying out its engagements, Ernst & Young applies general terms and
conditions, which contain a clause that limits its liability. A copy of
these terms and conditions is available on request free of charge.
=====================================================================





--
Please see the official ORACLE-L FAQ: http://www.orafaq.com
--
Author:
  INET: [EMAIL PROTECTED]

Fat City Network Services    -- (858) 538-5051  FAX: (858) 538-5051
San Diego, California        -- Public Internet access / Mailing Lists
--------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).

Reply via email to