Why this request does not give an error?

The query below is from the HR schema that is included in the database.
If we separate the subquery gives us an error, but if we execute all of the query, execute it, and sends us a result (fake, of course).

SELECT last_name, department_id, job_id
Employees
WHERE department_id = (SELECT department_id
Sites
WHERE location_id = 1700);

Hello

Welcome to the forum!

user7363993 wrote:
The query below is from the HR schema that is included in the database.
If we separate the subquery gives us an error, but if we execute all of the query, execute it, and sends us a result (fake, of course).

In fact, the results are correct. Not what you were expecting, maybe, but they're right.
If the request is reasonable or not is a separate issue.

SELECT last_name, department_id, job_id
Employees
WHERE department_id = (SELECT department_id
Sites
WHERE location_id = 1700);

If you simply run the subquery, you get an error because there is no column called department_id in any table that is in the scope. (Places would be the only scope table; in fact, the places would be the only table, period).

What you posted is a correlated subquery . In a correlated subquery, you can reference columns of the query of the mother. Employees and locations of the tables are in scope in the subquery.
It might be easier to understand if you wrote the query like this:

SELECT  last_name
,      department_id
,      job_id
FROM      employees     e
WHERE      department_id = (
                         SELECT  e.department_id
                   FROM    locations         l
                   WHERE   l.location_id   = 1700
               )
;

It is 100% equivalent to the query you posted. I wasn't to give alias names to all tables and qualify the column names with those aliases in the subquery. Since there is no ambiguity (i.e. department_id exists only in the employees table and location_id exists only in the table of communities) the compiler doesn't care if you qualify the columns with the table alias or not.
(Even if the same column exist in both tables, you would get an error. Locations being the only table in the FROM clause in the subquery, the compiler assumes that all of the columns named ambiguously came from this table.)

Tags: Database

Similar Questions

  • Why this scriipt does not work with Firefox? < embed src = "News2008Fall.pdf" width = '615' height = '3200' > < / embed > "

    Please tell me why this script does not work with Firefox. It works with Safari. Here is the page that includes the script: www.lionsgatehoa.org/newslettertest.html. Thank you. Tom Engleman

    Here's the script in my html document:

    < embed src = "News2008Fall.pdf" width = '615' height = '3200' > < / embed > "

    Edit: removed # phone

    Works for me on Linux.

    Your system details list does not display the Adobe Reader plugin, so you'll have to (re) install this program.

    See:

  • Why this SQL does not work?

    The following code does not work when I try to delete rows from a table of test. The test table has no unique or primary key on it and is defined as test (identification number). Can you explain to me why it doesn't work?


    delete from test a where a.rowid in (select b.rowid from test b where b.id = a.id and b.rowid != a.rowid);




    When I run the subquery (selection) with replacement of the actual values of a.rowid and the table queried a.id (IE.select b.rid from test2 b where b.id = 1 and b.rid != 'XXX'

    ), the subquery returns exactly as expected (that is to say, it gives the rowid is different from that which went from subquery). And as although I know the internal subquery must return the result for each row of the table in the outside circle delete statement, and only after that should execute the delete statement. For example, for the first row of the table in the external suppression, the delete statement must send the ID of the first row in the internal subquery and then wait the result which should return. And then runs the delete statement, in which case the subquery must return the rowid is different from that which went from subquery (ie.

    b.rowid != a.rowid

    ). Am I wrong? What is the error in this statement.


    P.S. The sql is also not working if we replace remove it with the update or select

    in this case, the subquery must return the rowid is different from that which went from subquery (IE.

    b.rowid != a.rowid

    ). Am I wrong? What is the error in this statement.

    You are right that this subquery should return other than past rowid thr. But you used the IN clause as well as below:

    where a.rowid in

    What States remove the line if rowid returned by the subquery contains the identifier for the row whose ID was passed. As the inner query is to return another rowid, therefore, no row is deleted.

    To remove duplicate lines, try the query (Replace tablename/columns with your) below:

    DELETE FROM emp A

    WHERE A.ROWID > ALL (SELECT B.ROWID

    PEM'S B

    WHERE A.empno = B.empno);

  • Why this mixture does not work?

    I work in CS4 on Mac. I want to do a 10 pastel colors color wheel. I had planned to use ten spokes - each scratched a color - and then mix together them. I did it before with success with other colors, I got the idea for this Web site: http://colorburned.com/create-a-color-picker-icon-in-illustrator/

    However, it does not for the moment. Here are my photos before and after.

    before.jpgAfter.jpg

    Any ideas on the reasons that a segment is so shredded? I tried to increase the width of each RADIUS of 1 pt to 4pt, but it did not help.

    You need to duplicate the higher-level object and place it under the entire stack.

    In this example, the strokes begin with yellow (the bottom) and eventually green (at the top of the stack).

    Select the green path, Edit > copy, edit > paste in front, object > Arrange > put in the background... and then create the mix.

    You need to start and stop of the same color in the same place for the entire circle mix properly.

  • Why this program does not close?

    I have 2 classes
    Demo1
    Demo2
    public class Demo1 {
         public static void main (String [] args) {
              System.out.println("Hello World!");
              System.out.println ("Execution reached the end of main method;");
              System.out.println ("The program should exit now.");
              }
         }
    import javax.swing.*;
    public class Demo2 {
         public static void main (String [] args) {
              JFrame f=new JFrame();
              f.setBounds(0,0,100,100);
              f.setVisible(true);
              System.out.println ("Execution reached the end of main method.");
              System.out.println ("The program should exit now.");
              }
         }
    When I run these classes, I get the same result.
    Execution reached the end of main method.
    The program should exit now.
    Program demo1 actually leaves and comes back to command prompt. But Demo2 program does not close. Why is Demo2 not close even if execution reaches the end of the main method?

    A program does not close until any thread no-daemon/s is / are running. Showing the JFrame begins the EDT, which is a non-daemon thread.

    DB

  • Why this code does not work in dreamweaver?

    <! DOCTYPE HTML >

    < html >

    < head >

    < style type = "text/css" >

    {body

    Width: 100%;

    height: 100%;

    margin: 0px;

    padding: 0px;

    }

    < / style >

    < / head >

    < body >

    < img src = "images/last.png" alt = "left" style ="width: 100%; "/ >

    < / body >

    < / html >

    When I put it in the tab code Dreamweaver html blank document page, it does not seem to load. Any suggestions?

    Are you sure that the image is in the folder named "images" last.png? Are you sure the image is to use the right color RGB and CMYK not the space.

    There's nothing wrong with the code that I can see. What happens if you try just text:

    Hello

  • When I put a poster on my calendar frame, why this change does not appear in my "palette."

    I figured out you can drag and drop only a poster frame on the placeholder in the menu, but this process needs to be automated should it not?  When you set a poster frame, this image should not represent this scenario in the menu?

    Make sure that you have selected the marker for the first chapter of the timeline when you set the poster frame.  This assumes that the button links to the chapter in the timeline.

  • That means 1e9 and why this query does not work?

    What does 1e9? Someone has links to documentation on this oracle? And why I get this error?
    SQL> select segment_name,(bytes/1e9) AS size from dba_segments where segment_name='MSG_MASTER';
    select segment_name,(bytes/1e9) AS size from dba_segments where segment_name='MSG_MASTER'
                                       *
    ERROR at line 1:
    ORA-00923: FROM keyword not found where expected

    SIZE is a keyword - so if you want the name of the column size then use 'SIZE' else give it a different name

    Try dividing by other exponentials, then you'll see how: 1e0 1e1 (div 1), (div by 10), 1e2 :-) etc

    Mette

    Published by: mettemusens on 2009-05-12 16:02

  • Request does not give the same result according to the computer

    Hi all

    My problem is very unclear to me, so I'll try to explain it the best I can...

    So I'm almost finished my project, and I want to try it on another computer.

    In my project, I generate a txt through several file datas, can I use this file to display graphical information on a graph. It works very well.

    So I made a kit of Distribution following this tutorial: http://www.howtocvi.net/2011/12/how-to-make-distribution-kit.html

    I installed the .exe on another computer, and I launched the program.

    My problem is that, for the same data, I used previously, the program is not the same behavior.

    My tracks on the chart do not look like they should be.

    I don't know what are the causes that both programs use the same algorithm...

    If you have an idea, I'll take it!

    Thanks for your answers,

    Kind regards

    Jerome.

    Well, the example was just stressing that debug and release can behave differently, I thought not that it could directly apply to your situation.

    If I were you, I'd start checking the inizialization of the variables, since it is one of the biggest differences between these two scenarios.

    After that, I will add a few DebugPrintf to print relevant during the life of the program variables: DebugPrintf output can be seen in the window Debug Output while developing the program and in utilities like DebugView when running the executable, so you can compare his production in two situations.

    Normally, after some trial and error clarifies the situation and the appropriate corrections can be made to the code.

  • "Choose program by default' does not, gives an error about"permissions. "

    Hello

    When I try to choose the default program to open a file by going to:
    Make a right click--> Open with--> default program choose...
    I get the error message:
    "Windows cannot access the specified device, path or file. You can not have the appropriate permissions to access the item.

    He works correctly at least in the last month and I don't know why he was arrested. I tried to log on with a different user account and you have the same problem. I tried the file system"auditor" as suggested elsewhere but he indicated that everything was OK. " I also tried to roll the system back to before the last Windows update, but the problem remains. Can I do about it?

    Thank you very much
    Anna :-)

    I couldn't me remember if I had something to ask the problem so I tried a system restore to the case, but she has not installed. Then when I tried to reboot Windows could not start. Fortunately the thing auto repair that I have Windows restarts also fixed my original problem!

    Thanks for the reply. The problem is now sorted :-)

  • Why this code does not work, its simple!

    Hello

    I know the myVISITORinfoFormdomain name, say, the name is myTextField25, but I do not know its full path! but, I want to make gray and read-only, so I put the code below (I put the cursor on the node 'myVISITORinfoForm' and selected the DocReady event)

    var c = xfa.resolveNode("myTextField5").fillColor = '192,192,192. "
    var d = xfa.resolveNode("myTextField26").fillColor = '192,192,192. "
    var e = xfa.resolveNode("myTextField25").access = "readOnly";
    var f = xfa.resolveNode("myTextField26").access = "readOnly";

    I also tried another field of myTextField26, I also kept the same code in the FormReady events initialization... but has not worked!

    myTextField25 and myTextField26 are positioned on the 3rd page of the mySubForm12 subform.

    Pls let me know wht miss me?

    Thank you

    Hello

    If you want to make each field read only and gray, so why not script directly in each of the two textfields?

    It's the two fields docReady event:

    this.fillColor = "192,192,192";
    this.access = "readOnly";
    

    You can only do this if the fields are not null (for example when the form is returned to you). In this case you would wrap the script in an if statement:

    if (this.rawValue === null)
    {
         this.fillColor = "192,192,192";
         this.access = "readOnly";
    }
    

    I don't think the way you declare variables and setting properties on one line will work. Also, the use of the xfa.resolveNode is not effective.

    Hope that helps,

    Niall

  • Why this text does not work well?

    Hi guys,.

    I am having trouble with this text.

    http://www.pixentral.com/show.php?picture=1y1N3lL5KPRBejo9GlPhEdkpl4KDQe

    It's in a column and the text block ends with the word 'amorosa '. I don't know why in the text the word "looking" will move to the next line and can only be inserted after that «nostalgia DEL...» "line of text even if ups with the end of the image apparently large enough to hold.

    http://www.pixentral.com/show.php?picture=1nu94bPp66d7lumber8SBjn6eI7Z1

    Maybe there is a better way to work with tabs, avoiding the list and so forth, but so far I have not understand it... so I work with the tools I know.

    Thanks for any info!

    See you soon,.

    SEBS

    Most importantly, you should do in this file is to remove all the keystrokes unnecessary (circled in red on my picture).

    You only need a paragraph return after caida, a tab after Coccoz, a tab after Catalanand without tab in the 'second paragraph' text (such as after del), and you do not need a line break after amorosa.

    After you have removed all the junk, set a tab on the left for the "second column and take note of its position." Suppose that you assign the p180 tab. To do the hanging indent, set the left indent p180 and first line indent to-p180 (i.e. negative 180 points). In this way, all text will be in the "second column", except the first line of the paragraph, which in this case are the names that make up your "first column". When you are ready to start with a new name, it's when you need a normal declaration.

  • Puzzled why this code does not work... (Update record) ASP/VB - please help.

    What I'm trying to do is to check two values of database and if they are what I said I want the code to run (record code update). Here's what I have:

    < % if (rsSoftwareRequests.Fields.Item("Approved"). Value) = "Yes" AND rsSoftwareRequests.Fields.Item ("EmailSent"). Value) = "False" then % >
    < %
    If (CStr (Request ("MM_update")) = "form1") then
    If (not MM_abortEdit) then
    'perform the update
    Dim MM_editCmd

    Set MM_editCmd = Server.CreateObject ("ADODB.Command")
    MM_editCmd.ActiveConnection = MM_Intranet_New_STRING
    MM_editCmd.CommandText = "UPDATE SoftwareRequest SET EmailSent."
    =?, ApprovedByUserName =? WHERE ID =? »
    MM_editCmd.prepared = true
    MM_editCmd.parameters.Append MM_editCmd.CreateParameter ("param1",
    1, 50, 202 Request.Form ("EmailSent")) ' adVarWChar
    MM_editCmd.parameters.Append MM_editCmd.CreateParameter ("param2",
    202, 1, 255, Request.Form ("ApprovedByUserName")) ' adVarWChar
    MM_editCmd.parameters.Append MM_editCmd.CreateParameter ("param3",
    5, 1, -1, MM_IIF (Request.Form ("MM_recordId"),
    Request.Form ("MM_recordId"), null)) ' adDouble
    MM_editCmd.execute
    MM_editCmd.ActiveConnection.close


    ' add the query string to the redirect URL
    Dim MM_editRedirectUrl
    MM_editRedirectUrl = "software_hardware1.asp".
    If (Request.QueryString <>"") then
    If (InStr (1, MM_editRedirectUrl, "?", vbTextCompare in) = 0) then
    MM_editRedirectUrl = MM_editRedirectUrl & "?" &
    Request.QueryString
    On the other
    MM_editRedirectUrl = MM_editRedirectUrl & "" &
    Request.QueryString
    End If
    End If
    Response.Redirect (MM_editRedirectUrl)
    End If
    End If
    % >
    < % end If % >


    The recordset is set above the statement 'IF '... I put these values in the HTML body to see if it is pulling them correctly and yet it is the code under the IF statement is not pull out... I don't understand?


    Any help would be appreciated. Thank you!

    I think that is the oder of your orders, I did a quick page to test and it works fine, I left the sql insert at the top of the page where DW put and I think all his money form if SO, was the order in my page like this:

    Insert code - report
    RS for the values-

    <%If (rsSoftwareRequests.Fields.Item("Approved").Value) = "Yes" AND rsSoftwareRequests.Fields.Item("EmailSent").Value) = "False" Then%>


    FORM code right after IF THEN exposed


    <% end if %>

    Notice the document.form1.submit () is inside the IF THEN statement so it will trigger if the FI THEN returns true and that is not the value of the onLoad of the body, it should work, I left the record insertion code where DW puts but try it inside the fi can. NOTE: If the user has JS disabled the page will not work, but there are risks to everything!

  • Why this example does not work

    I couldn't run this example vi, he told me that sub vi is missing.

    How can I run this vi.  I have LABVIEW 8.5

    Atef

    Hello

    Cannot open under VI LV8.5 cause cause of too old version of VI. It is possible to open in LV7.1.  Here should work now. I mass compile of 7.1 to 8.5 by 8.0.

    But I think that there is an app for old VI can open in LV up to 8.5. Maybe someone will give link.

    Concerning

  • Why this rule does not generate an alarm

    Hi all

    I created a rule to the alarm on a DB2 table that is reaching a limit on the number of pages.  If I run this code in the editor of "Condition run the query" for a limited scope object which is known to have a number of pages, it returns true.  However, I never get a generated alarm.  I wonder if I am missing something, or if there is some newspapers or other place that I can look to see if it runs into an error.  Thank you.

    Scope of the rule: DB2_Database_Table

    Condition:

    condition = false 

    pages = server.get("DataService").retrieveLatestValue(scope,"data_object_pages")?.getValue().sum 

    pct_full = (pages / 16776960 * 100).round(2) 

    //Only lookup tablespace type if percent is high

    if (pct_full > 75){

       tbsp = scope.parents[0].table_spaces[scope.tbsp_id]

       if (tbsp.tablespace_content_type == "ANY"){

         condition = true

       }

    }

    return condition;

    Another obvious to check, but what is the behavior of rule value?

    Also, have you tested the rule?  Add the following at the beginning of your state of health:

    Returns true;

    You may also change your rule of tripping to make it work:

    If all goes well, this will trigger an alarm for each instance of limited scope - a bit messy if you have many objects whose scope, although

    Brian

Maybe you are looking for