Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Usenet -> c.d.o.misc -> Help with SQL
I have the following SQL:
SELECT DISTINCT STYLE.STYLEIDX, STYLE.STYLECODE, STYLE.NAME, STYLE.DESCRIP
FROM STYLE
WHERE STYLE.REF5 = 2054
AND STYLE.ACTIVE = 1
ORDER BY 2;
The 2054 value comes from another table, called REFCODE, which looks like
this:
RGIDX RCIDX CODE NAME RPCIDX ACTIVE 1046 1975 NHL Nhl 348 1903 1 1046 1936 NON LICENSED Non Licensed 1914 1 1046 2054 NON-LICENSED Non-Licensed 1914 1
The SQL to get the above is:
SELECT DISTINCT *
FROM REFCODE
WHERE RGIDX = 1046 AND ACTIVE = 1
ORDER BY 1;
Instead of using "WHERE STYLE.REF5 = 2054" in the top-most SQL, I want to
search by the CODE, ie. "NON-LICENSED". So I changed the SQL to:
SELECT DISTINCT STYLE.STYLEIDX, STYLE.STYLECODE, STYLE.NAME, STYLE.DESCRIP
FROM STYLE, STYLES, STYLEC, REFCODE
WHERE STYLE.REF5 = (SELECT RCIDX FROM REFCODE WHERE RGIDX = 1046 AND
REFCODE.CODE = 'NON-LICENSED')
AND STYLE.ACTIVE = 1
ORDER BY 2;
Note that "(SELECT RCIDX FROM REFCODE WHERE RGIDX = 1046 AND REFCODE.CODE =
'NON-LICENSED')
" returns 2054 only.
The problem is that the query now seems to "hang". The original (top-most) query runs instantly). Have I done this correctly?
-- Prince Of ThievesReceived on Mon Jan 19 2004 - 19:32:20 CST
![]() |
![]() |