Query within a Query

Ask a Question related to Coldfusion - Advanced Techniques, Design and Development.

  1. #1

    Default Query within a Query

    :confused;
    Is it possible to do a query within a query to where the data wanted is in 2
    seperate Datasources? The reason is that we are being asked to combine info
    from 2 seperate databases and would not like to use looping if possible.
    code example
    <cfquery name="quepeople" datasource="database1">
    Select name, address, shift, supervisor, idnumber
    From employeeinfo
    where
    <cfquery name="queawardrecipeant" datasource="database2">
    Select idnumber
    from Awardtable
    where presented <> 0
    <cfquery>
    <cfquery>

    wilhelm Guest

  2. Similar Questions and Discussions

    1. Query of Queries on query New type query
      In CF5 we have a page that creates a query, using queryNew and querySetCell and the like, we then used dbtype="query" and gave it's name so we could...
    2. query of query throwing weird exception
      One workaround: I had added rows to a cfsearch query, and set a numeric value in custom1 field that that query provides. A query of queries...
    3. Convert a query to a list, or find an item in a query
      Hi All, I am using CFPOP to retrieve mail from a server, then delete each message after I retrieve it. What I want to do is to check that I don;t...
    4. CAML Query: Multiple Query Fields Issue
      I need to Create a CAML Query Dynamically with VB to a Sharepoint WebService GetListItems Method. The User Could Select 1 to X Number of IDs...
    5. BCP query out executed by xp_cmdshell works fine from query analyzer but fails from VB Component
      Hi all, I have a stored procedure which returns a vast number of record and i have to write the output into a csv file. I'm using BCP utility to...
  3. #2

    Default Re: Query within a Query

    Sorry, no can do.
    jdeline Guest

  4. #3

    Default Re: Query within a Query

    Depending on what type of databases you're talking about, it may be possible to
    run a query on tables that reside in two different databases. In SQL Server,
    you can query tables in two different databases or on two different linked
    servers, just as if they were objects in the same database. You just need to
    qualify the object names with the server and database names of each objects:

    --- psuedo code
    SELECT db1.ColumnID AS LocalColumn, db2.ColumnID AS RemoteColumn
    FROM localServerName.databaseName.owner.tableName db1,
    remoteServerName.databaseName.owner.talbeName db2
    WHERE (some conditions....)



    mxstu Guest

  5. #4

    Default Re: Query within a Query

    You can easily accomplish something similar using query of queries -- although
    this may not be as efficient as querying two DB's simultaneously.

    See the code below:

    Regards,
    -- MikeR


    <cfquery name="quepeople" datasource="database1">
    SELECT name, address, shift, supervisor, idnumber
    FROM employeeinfo
    </cfquery>


    <cfquery name="queawardrecipeant" datasource="database2">
    SELECT idnumber
    FROM Awardtable
    WHERE presented <> 0
    </cfquery>


    <cfquery name="qGetAwardVictims" dbtype="Query">
    SELECT DISTINCT
    quepeople.*
    FROM
    quepeople,
    queawardrecipeant
    WHERE
    quepeople.idnumber IN (queawardrecipeant.idnumber)
    </cfquery>

    MikerRoo Guest

  6. #5

    Default Re: Query within a Query

    Another way would be to create a view in your DB linking the two tables.
    OldCFer Guest

  7. #6

    Default Re: Query within a Query

    you may be able to use ValueList(query.column) to make a list and then use that list like this:

    WHERE idnumber IN ( #ValueList(query.column)# )
    Alen Guest

  8. #7

    Default Re: Query within a Query

    How would you go about doing this. Would you create a list (or array) for the first then use the list as part of the wuery for the 2nd one or how.
    wilhelm Guest

  9. #8

    Default Re: Query within a Query

    I believe allan was suggesting that you could run the first query, and then use
    the ValueList() function to create a list of ID's that you could then use in
    your second query.





    <!--- note - this does not handle an empty list --->
    <cfquery name="getFirstTableData" datasource="yourFirstDSN">
    SELECT ID, SomeOtherColumns
    FROM FirstDataSourceTable
    </cfquery>

    <cfset IDList = ValueList(getFirstTableData.ID)>

    <cfquery name="getSecondTableData" datasource="yourSecondDSN">
    SELECT ID, SomeOtherColumns
    FROM SecondDataSourceTable
    WHERE ID IN (#IDList#)
    </cfquery>

    mxstu Guest

  10. #9

    Default Re: Query within a Query

    Depending on the number of values that could returned, using a query of a query
    as MikerRoo suggeted may be your best bet. There is a limit on the lenght of a
    list you can pass into a query and speed can be a major factor. I once had a
    developer pass in a list like this and it had thousands of values. Needless to
    say I rewrote the query to be more efficient.

    TA-Selene Guest

Posting Permissions

  • You may not post new threads
  • You may post replies
  • You may not post attachments
  • You may not edit your posts

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139