One example involves manipulation of select statement in SQL












0















(SQL rookie question) I'm Working on a query which could find all the Worker who create products that include all the products created by Worker with id = 18.



CREATE TABLE Creates(
ID CHAR(10),
PRODUCTID CHAR(10),
PRIMARY KEY (ID, PRODUCTID),
FOREIGN KEY(ID) REFERENCES Worker(ID) ON DELETE CASCADE,
};

CREATE TABLE Worker(
ID CHAR(10) PRIMARY KEY,
};


Here are what have in my table Creates now:



INSERT INTO Creates VALUES('2', 'S100');
INSERT INTO Creates VALUES('2', 'D111');
INSERT INTO Creates VALUES('4', 'D111');
INSERT INTO Creates VALUES('4', 'S119');
INSERT INTO Creates VALUES('6', 'S2');
INSERT INTO Creates VALUES('6', 'D231');
INSERT INTO Creates VALUES('8', 'S103');
INSERT INTO Creates VALUES('10', 'S109');
INSERT INTO Creates VALUES('12', 'S189');
INSERT INTO Creates VALUES('14', 'S982');
INSERT INTO Creates VALUES('20', 'E341');
INSERT INTO Creates VALUES('22', 'E100');
INSERT INTO Creates VALUES('18', 'D111');
INSERT INTO Creates VALUES('18', 'D231');
INSERT INTO Creates VALUES('2', 'D231');
INSERT INTO Creates VALUES('24', 'D111');
INSERT INTO Creates VALUES('24', 'D231');


As we can see, actually the correct output should be ID 2 and 24.



This what I have now to make it true, but I don't think this correct, so I would like to hear from anyone or any suggestion that can help me with it, thank you in advance.



SELECT DISTINCT ID 
FROM Creates
WHERE PRODUCTID = ALL (SELECT PRODUCTID FROM Creates WHERE ID = '18')
ORDER BY ID ASC











share|improve this question



























    0















    (SQL rookie question) I'm Working on a query which could find all the Worker who create products that include all the products created by Worker with id = 18.



    CREATE TABLE Creates(
    ID CHAR(10),
    PRODUCTID CHAR(10),
    PRIMARY KEY (ID, PRODUCTID),
    FOREIGN KEY(ID) REFERENCES Worker(ID) ON DELETE CASCADE,
    };

    CREATE TABLE Worker(
    ID CHAR(10) PRIMARY KEY,
    };


    Here are what have in my table Creates now:



    INSERT INTO Creates VALUES('2', 'S100');
    INSERT INTO Creates VALUES('2', 'D111');
    INSERT INTO Creates VALUES('4', 'D111');
    INSERT INTO Creates VALUES('4', 'S119');
    INSERT INTO Creates VALUES('6', 'S2');
    INSERT INTO Creates VALUES('6', 'D231');
    INSERT INTO Creates VALUES('8', 'S103');
    INSERT INTO Creates VALUES('10', 'S109');
    INSERT INTO Creates VALUES('12', 'S189');
    INSERT INTO Creates VALUES('14', 'S982');
    INSERT INTO Creates VALUES('20', 'E341');
    INSERT INTO Creates VALUES('22', 'E100');
    INSERT INTO Creates VALUES('18', 'D111');
    INSERT INTO Creates VALUES('18', 'D231');
    INSERT INTO Creates VALUES('2', 'D231');
    INSERT INTO Creates VALUES('24', 'D111');
    INSERT INTO Creates VALUES('24', 'D231');


    As we can see, actually the correct output should be ID 2 and 24.



    This what I have now to make it true, but I don't think this correct, so I would like to hear from anyone or any suggestion that can help me with it, thank you in advance.



    SELECT DISTINCT ID 
    FROM Creates
    WHERE PRODUCTID = ALL (SELECT PRODUCTID FROM Creates WHERE ID = '18')
    ORDER BY ID ASC











    share|improve this question

























      0












      0








      0








      (SQL rookie question) I'm Working on a query which could find all the Worker who create products that include all the products created by Worker with id = 18.



      CREATE TABLE Creates(
      ID CHAR(10),
      PRODUCTID CHAR(10),
      PRIMARY KEY (ID, PRODUCTID),
      FOREIGN KEY(ID) REFERENCES Worker(ID) ON DELETE CASCADE,
      };

      CREATE TABLE Worker(
      ID CHAR(10) PRIMARY KEY,
      };


      Here are what have in my table Creates now:



      INSERT INTO Creates VALUES('2', 'S100');
      INSERT INTO Creates VALUES('2', 'D111');
      INSERT INTO Creates VALUES('4', 'D111');
      INSERT INTO Creates VALUES('4', 'S119');
      INSERT INTO Creates VALUES('6', 'S2');
      INSERT INTO Creates VALUES('6', 'D231');
      INSERT INTO Creates VALUES('8', 'S103');
      INSERT INTO Creates VALUES('10', 'S109');
      INSERT INTO Creates VALUES('12', 'S189');
      INSERT INTO Creates VALUES('14', 'S982');
      INSERT INTO Creates VALUES('20', 'E341');
      INSERT INTO Creates VALUES('22', 'E100');
      INSERT INTO Creates VALUES('18', 'D111');
      INSERT INTO Creates VALUES('18', 'D231');
      INSERT INTO Creates VALUES('2', 'D231');
      INSERT INTO Creates VALUES('24', 'D111');
      INSERT INTO Creates VALUES('24', 'D231');


      As we can see, actually the correct output should be ID 2 and 24.



      This what I have now to make it true, but I don't think this correct, so I would like to hear from anyone or any suggestion that can help me with it, thank you in advance.



      SELECT DISTINCT ID 
      FROM Creates
      WHERE PRODUCTID = ALL (SELECT PRODUCTID FROM Creates WHERE ID = '18')
      ORDER BY ID ASC











      share|improve this question














      (SQL rookie question) I'm Working on a query which could find all the Worker who create products that include all the products created by Worker with id = 18.



      CREATE TABLE Creates(
      ID CHAR(10),
      PRODUCTID CHAR(10),
      PRIMARY KEY (ID, PRODUCTID),
      FOREIGN KEY(ID) REFERENCES Worker(ID) ON DELETE CASCADE,
      };

      CREATE TABLE Worker(
      ID CHAR(10) PRIMARY KEY,
      };


      Here are what have in my table Creates now:



      INSERT INTO Creates VALUES('2', 'S100');
      INSERT INTO Creates VALUES('2', 'D111');
      INSERT INTO Creates VALUES('4', 'D111');
      INSERT INTO Creates VALUES('4', 'S119');
      INSERT INTO Creates VALUES('6', 'S2');
      INSERT INTO Creates VALUES('6', 'D231');
      INSERT INTO Creates VALUES('8', 'S103');
      INSERT INTO Creates VALUES('10', 'S109');
      INSERT INTO Creates VALUES('12', 'S189');
      INSERT INTO Creates VALUES('14', 'S982');
      INSERT INTO Creates VALUES('20', 'E341');
      INSERT INTO Creates VALUES('22', 'E100');
      INSERT INTO Creates VALUES('18', 'D111');
      INSERT INTO Creates VALUES('18', 'D231');
      INSERT INTO Creates VALUES('2', 'D231');
      INSERT INTO Creates VALUES('24', 'D111');
      INSERT INTO Creates VALUES('24', 'D231');


      As we can see, actually the correct output should be ID 2 and 24.



      This what I have now to make it true, but I don't think this correct, so I would like to hear from anyone or any suggestion that can help me with it, thank you in advance.



      SELECT DISTINCT ID 
      FROM Creates
      WHERE PRODUCTID = ALL (SELECT PRODUCTID FROM Creates WHERE ID = '18')
      ORDER BY ID ASC








      sql database oracle






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 16 '18 at 23:01









      user548976user548976

      193




      193
























          3 Answers
          3






          active

          oldest

          votes


















          1














          This:



          SELECT ID 
          FROM
          (SELECT *
          FROM Creates
          WHERE PRODUCTID IN (SELECT PRODUCTID FROM Creates WHERE ID = '18')
          AND (ID <> '18')
          ) AS t
          GROUP BY ID
          HAVING COUNT(*) = (SELECT COUNT(*) FROM Creates WHERE ID = '18')


          returns



          2
          24


          As you can see, the Worker table is not involved at all.

          The results are retrieved from Creates table by selecting the ids of the workers that have produced products that the worker with id '18' only if their number is equal to the number of the products that the worker with id '18' has produced.






          share|improve this answer


























          • This is a good approach. It is easy to read and it avoids the expensive cross join typically found in "Relational division".

            – Ronnis
            Nov 17 '18 at 1:05



















          0














          First you need a list of all products created by worker 18



          SELECT product_id FROM Creates WHERE ID = '18'


          Then you need a list of all employees



          SELECT ID as worker_id FROM Workers WHERE ID <> '18'


          Now you create a cartesian product of both results to have a list of all possible combinations



          WITH products as (
          SELECT product_id FROM Creates WHERE ID = '18'
          ), employees as (
          SELECT ID as worker_id FROM Workers WHERE ID <> '18'
          )
          SELECT product_id, worker_id
          FROM products
          CROSS JOIN employees


          Now you have to find if an employees have every product so you check with the Creates Table



          WITH products as (
          SELECT product_id FROM Creates WHERE ID = '18'
          ), employees as (
          SELECT ID as worker_id FROM Workers WHERE ID <> '18'
          ), allMatches as (
          SELECT product_id, worker_id
          FROM products
          CROSS JOIN employees
          )
          SELECT A.worker_id
          FROM allMatches A
          LEFT JOIN Creates C
          ON A.product_id = C.product_id
          AND A.worker_id = C.worker_id
          GROUP BY A.worker_id
          HAVING COUNT(*) = COUNT(C.product_id)


          if a worker doesnt create a product the LEFT JOIN will create NULL on the match. And COUNT(C.product_id) doesnt count nulls






          share|improve this answer































            0














            Probably the simplest method uses listagg():



            select c.id,
            listagg(c.productid, ',') within group (order by c.productid) as products
            from creates c join
            creates c18
            on c18.productid = c.productid and
            c18.id = 18 and
            c.id <> 18
            group by c.id
            having products = (select listagg(c.productid, ',') within group (order by c.productid) as products
            from creates c
            where c.id = 18
            );





            share|improve this answer


























            • Interesting aproach. But who is c18p? and if is a typo how the alias become c18

              – Juan Carlos Oropeza
              Nov 17 '18 at 6:51













            • @JuanCarlosOropeza . . . That should just be a reference to products.

              – Gordon Linoff
              Nov 17 '18 at 20:32











            Your Answer






            StackExchange.ifUsing("editor", function () {
            StackExchange.using("externalEditor", function () {
            StackExchange.using("snippets", function () {
            StackExchange.snippets.init();
            });
            });
            }, "code-snippets");

            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "1"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














            draft saved

            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53346501%2fone-example-involves-manipulation-of-select-statement-in-sql%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            3 Answers
            3






            active

            oldest

            votes








            3 Answers
            3






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            1














            This:



            SELECT ID 
            FROM
            (SELECT *
            FROM Creates
            WHERE PRODUCTID IN (SELECT PRODUCTID FROM Creates WHERE ID = '18')
            AND (ID <> '18')
            ) AS t
            GROUP BY ID
            HAVING COUNT(*) = (SELECT COUNT(*) FROM Creates WHERE ID = '18')


            returns



            2
            24


            As you can see, the Worker table is not involved at all.

            The results are retrieved from Creates table by selecting the ids of the workers that have produced products that the worker with id '18' only if their number is equal to the number of the products that the worker with id '18' has produced.






            share|improve this answer


























            • This is a good approach. It is easy to read and it avoids the expensive cross join typically found in "Relational division".

              – Ronnis
              Nov 17 '18 at 1:05
















            1














            This:



            SELECT ID 
            FROM
            (SELECT *
            FROM Creates
            WHERE PRODUCTID IN (SELECT PRODUCTID FROM Creates WHERE ID = '18')
            AND (ID <> '18')
            ) AS t
            GROUP BY ID
            HAVING COUNT(*) = (SELECT COUNT(*) FROM Creates WHERE ID = '18')


            returns



            2
            24


            As you can see, the Worker table is not involved at all.

            The results are retrieved from Creates table by selecting the ids of the workers that have produced products that the worker with id '18' only if their number is equal to the number of the products that the worker with id '18' has produced.






            share|improve this answer


























            • This is a good approach. It is easy to read and it avoids the expensive cross join typically found in "Relational division".

              – Ronnis
              Nov 17 '18 at 1:05














            1












            1








            1







            This:



            SELECT ID 
            FROM
            (SELECT *
            FROM Creates
            WHERE PRODUCTID IN (SELECT PRODUCTID FROM Creates WHERE ID = '18')
            AND (ID <> '18')
            ) AS t
            GROUP BY ID
            HAVING COUNT(*) = (SELECT COUNT(*) FROM Creates WHERE ID = '18')


            returns



            2
            24


            As you can see, the Worker table is not involved at all.

            The results are retrieved from Creates table by selecting the ids of the workers that have produced products that the worker with id '18' only if their number is equal to the number of the products that the worker with id '18' has produced.






            share|improve this answer















            This:



            SELECT ID 
            FROM
            (SELECT *
            FROM Creates
            WHERE PRODUCTID IN (SELECT PRODUCTID FROM Creates WHERE ID = '18')
            AND (ID <> '18')
            ) AS t
            GROUP BY ID
            HAVING COUNT(*) = (SELECT COUNT(*) FROM Creates WHERE ID = '18')


            returns



            2
            24


            As you can see, the Worker table is not involved at all.

            The results are retrieved from Creates table by selecting the ids of the workers that have produced products that the worker with id '18' only if their number is equal to the number of the products that the worker with id '18' has produced.







            share|improve this answer














            share|improve this answer



            share|improve this answer








            edited Nov 17 '18 at 0:02

























            answered Nov 16 '18 at 23:52









            forpasforpas

            10.6k2423




            10.6k2423













            • This is a good approach. It is easy to read and it avoids the expensive cross join typically found in "Relational division".

              – Ronnis
              Nov 17 '18 at 1:05



















            • This is a good approach. It is easy to read and it avoids the expensive cross join typically found in "Relational division".

              – Ronnis
              Nov 17 '18 at 1:05

















            This is a good approach. It is easy to read and it avoids the expensive cross join typically found in "Relational division".

            – Ronnis
            Nov 17 '18 at 1:05





            This is a good approach. It is easy to read and it avoids the expensive cross join typically found in "Relational division".

            – Ronnis
            Nov 17 '18 at 1:05













            0














            First you need a list of all products created by worker 18



            SELECT product_id FROM Creates WHERE ID = '18'


            Then you need a list of all employees



            SELECT ID as worker_id FROM Workers WHERE ID <> '18'


            Now you create a cartesian product of both results to have a list of all possible combinations



            WITH products as (
            SELECT product_id FROM Creates WHERE ID = '18'
            ), employees as (
            SELECT ID as worker_id FROM Workers WHERE ID <> '18'
            )
            SELECT product_id, worker_id
            FROM products
            CROSS JOIN employees


            Now you have to find if an employees have every product so you check with the Creates Table



            WITH products as (
            SELECT product_id FROM Creates WHERE ID = '18'
            ), employees as (
            SELECT ID as worker_id FROM Workers WHERE ID <> '18'
            ), allMatches as (
            SELECT product_id, worker_id
            FROM products
            CROSS JOIN employees
            )
            SELECT A.worker_id
            FROM allMatches A
            LEFT JOIN Creates C
            ON A.product_id = C.product_id
            AND A.worker_id = C.worker_id
            GROUP BY A.worker_id
            HAVING COUNT(*) = COUNT(C.product_id)


            if a worker doesnt create a product the LEFT JOIN will create NULL on the match. And COUNT(C.product_id) doesnt count nulls






            share|improve this answer




























              0














              First you need a list of all products created by worker 18



              SELECT product_id FROM Creates WHERE ID = '18'


              Then you need a list of all employees



              SELECT ID as worker_id FROM Workers WHERE ID <> '18'


              Now you create a cartesian product of both results to have a list of all possible combinations



              WITH products as (
              SELECT product_id FROM Creates WHERE ID = '18'
              ), employees as (
              SELECT ID as worker_id FROM Workers WHERE ID <> '18'
              )
              SELECT product_id, worker_id
              FROM products
              CROSS JOIN employees


              Now you have to find if an employees have every product so you check with the Creates Table



              WITH products as (
              SELECT product_id FROM Creates WHERE ID = '18'
              ), employees as (
              SELECT ID as worker_id FROM Workers WHERE ID <> '18'
              ), allMatches as (
              SELECT product_id, worker_id
              FROM products
              CROSS JOIN employees
              )
              SELECT A.worker_id
              FROM allMatches A
              LEFT JOIN Creates C
              ON A.product_id = C.product_id
              AND A.worker_id = C.worker_id
              GROUP BY A.worker_id
              HAVING COUNT(*) = COUNT(C.product_id)


              if a worker doesnt create a product the LEFT JOIN will create NULL on the match. And COUNT(C.product_id) doesnt count nulls






              share|improve this answer


























                0












                0








                0







                First you need a list of all products created by worker 18



                SELECT product_id FROM Creates WHERE ID = '18'


                Then you need a list of all employees



                SELECT ID as worker_id FROM Workers WHERE ID <> '18'


                Now you create a cartesian product of both results to have a list of all possible combinations



                WITH products as (
                SELECT product_id FROM Creates WHERE ID = '18'
                ), employees as (
                SELECT ID as worker_id FROM Workers WHERE ID <> '18'
                )
                SELECT product_id, worker_id
                FROM products
                CROSS JOIN employees


                Now you have to find if an employees have every product so you check with the Creates Table



                WITH products as (
                SELECT product_id FROM Creates WHERE ID = '18'
                ), employees as (
                SELECT ID as worker_id FROM Workers WHERE ID <> '18'
                ), allMatches as (
                SELECT product_id, worker_id
                FROM products
                CROSS JOIN employees
                )
                SELECT A.worker_id
                FROM allMatches A
                LEFT JOIN Creates C
                ON A.product_id = C.product_id
                AND A.worker_id = C.worker_id
                GROUP BY A.worker_id
                HAVING COUNT(*) = COUNT(C.product_id)


                if a worker doesnt create a product the LEFT JOIN will create NULL on the match. And COUNT(C.product_id) doesnt count nulls






                share|improve this answer













                First you need a list of all products created by worker 18



                SELECT product_id FROM Creates WHERE ID = '18'


                Then you need a list of all employees



                SELECT ID as worker_id FROM Workers WHERE ID <> '18'


                Now you create a cartesian product of both results to have a list of all possible combinations



                WITH products as (
                SELECT product_id FROM Creates WHERE ID = '18'
                ), employees as (
                SELECT ID as worker_id FROM Workers WHERE ID <> '18'
                )
                SELECT product_id, worker_id
                FROM products
                CROSS JOIN employees


                Now you have to find if an employees have every product so you check with the Creates Table



                WITH products as (
                SELECT product_id FROM Creates WHERE ID = '18'
                ), employees as (
                SELECT ID as worker_id FROM Workers WHERE ID <> '18'
                ), allMatches as (
                SELECT product_id, worker_id
                FROM products
                CROSS JOIN employees
                )
                SELECT A.worker_id
                FROM allMatches A
                LEFT JOIN Creates C
                ON A.product_id = C.product_id
                AND A.worker_id = C.worker_id
                GROUP BY A.worker_id
                HAVING COUNT(*) = COUNT(C.product_id)


                if a worker doesnt create a product the LEFT JOIN will create NULL on the match. And COUNT(C.product_id) doesnt count nulls







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Nov 16 '18 at 23:47









                Juan Carlos OropezaJuan Carlos Oropeza

                36.1k63876




                36.1k63876























                    0














                    Probably the simplest method uses listagg():



                    select c.id,
                    listagg(c.productid, ',') within group (order by c.productid) as products
                    from creates c join
                    creates c18
                    on c18.productid = c.productid and
                    c18.id = 18 and
                    c.id <> 18
                    group by c.id
                    having products = (select listagg(c.productid, ',') within group (order by c.productid) as products
                    from creates c
                    where c.id = 18
                    );





                    share|improve this answer


























                    • Interesting aproach. But who is c18p? and if is a typo how the alias become c18

                      – Juan Carlos Oropeza
                      Nov 17 '18 at 6:51













                    • @JuanCarlosOropeza . . . That should just be a reference to products.

                      – Gordon Linoff
                      Nov 17 '18 at 20:32
















                    0














                    Probably the simplest method uses listagg():



                    select c.id,
                    listagg(c.productid, ',') within group (order by c.productid) as products
                    from creates c join
                    creates c18
                    on c18.productid = c.productid and
                    c18.id = 18 and
                    c.id <> 18
                    group by c.id
                    having products = (select listagg(c.productid, ',') within group (order by c.productid) as products
                    from creates c
                    where c.id = 18
                    );





                    share|improve this answer


























                    • Interesting aproach. But who is c18p? and if is a typo how the alias become c18

                      – Juan Carlos Oropeza
                      Nov 17 '18 at 6:51













                    • @JuanCarlosOropeza . . . That should just be a reference to products.

                      – Gordon Linoff
                      Nov 17 '18 at 20:32














                    0












                    0








                    0







                    Probably the simplest method uses listagg():



                    select c.id,
                    listagg(c.productid, ',') within group (order by c.productid) as products
                    from creates c join
                    creates c18
                    on c18.productid = c.productid and
                    c18.id = 18 and
                    c.id <> 18
                    group by c.id
                    having products = (select listagg(c.productid, ',') within group (order by c.productid) as products
                    from creates c
                    where c.id = 18
                    );





                    share|improve this answer















                    Probably the simplest method uses listagg():



                    select c.id,
                    listagg(c.productid, ',') within group (order by c.productid) as products
                    from creates c join
                    creates c18
                    on c18.productid = c.productid and
                    c18.id = 18 and
                    c.id <> 18
                    group by c.id
                    having products = (select listagg(c.productid, ',') within group (order by c.productid) as products
                    from creates c
                    where c.id = 18
                    );






                    share|improve this answer














                    share|improve this answer



                    share|improve this answer








                    edited Nov 17 '18 at 20:32

























                    answered Nov 17 '18 at 2:02









                    Gordon LinoffGordon Linoff

                    765k35296400




                    765k35296400













                    • Interesting aproach. But who is c18p? and if is a typo how the alias become c18

                      – Juan Carlos Oropeza
                      Nov 17 '18 at 6:51













                    • @JuanCarlosOropeza . . . That should just be a reference to products.

                      – Gordon Linoff
                      Nov 17 '18 at 20:32



















                    • Interesting aproach. But who is c18p? and if is a typo how the alias become c18

                      – Juan Carlos Oropeza
                      Nov 17 '18 at 6:51













                    • @JuanCarlosOropeza . . . That should just be a reference to products.

                      – Gordon Linoff
                      Nov 17 '18 at 20:32

















                    Interesting aproach. But who is c18p? and if is a typo how the alias become c18

                    – Juan Carlos Oropeza
                    Nov 17 '18 at 6:51







                    Interesting aproach. But who is c18p? and if is a typo how the alias become c18

                    – Juan Carlos Oropeza
                    Nov 17 '18 at 6:51















                    @JuanCarlosOropeza . . . That should just be a reference to products.

                    – Gordon Linoff
                    Nov 17 '18 at 20:32





                    @JuanCarlosOropeza . . . That should just be a reference to products.

                    – Gordon Linoff
                    Nov 17 '18 at 20:32


















                    draft saved

                    draft discarded




















































                    Thanks for contributing an answer to Stack Overflow!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53346501%2fone-example-involves-manipulation-of-select-statement-in-sql%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    Guess what letter conforming each word

                    Port of Spain

                    Run scheduled task as local user group (not BUILTIN)