How to replace UNION in sql query












1















I have a table: attb



------------------------------------------------
Id | Name | Code | Attribute | Amount
------------------------------------------------
1 | AV | 123 | Alpha | 233
------------------------------------------------
2 | TV | 122 | Beta | 235
------------------------------------------------
3 | TV | 123 | Gama | 238
------------------------------------------------
4 | CD | 122 | Beta | 239
------------------------------------------------
5 | TP | 122 | Beta | 240
------------------------------------------------
6 | RX | 123 | Alpha | 241
------------------------------------------------


I'm querying it as:



select id,name, code, attribute, amount
from attb
where code = 123 and attribute='Alpha'
UNION
select id,name, code, attribute, amount
from attb
where code = 122;


It return the following





Id | Name | Code | Attribute | Amount 
------------------------------------------------
1 | AV | 123 | Alpha | 233
------------------------------------------------
2 | TV | 122 | Beta | 235
------------------------------------------------
4 | CD | 122 | Beta | 239
------------------------------------------------
5 | TP | 122 | Beta | 240
------------------------------------------------
6 | RX | 123 | Alpha | 241
------------------------------------------------


Is there a way I can combine two queries instead of using UNION operator? or Any better implementation?










share|improve this question



























    1















    I have a table: attb



    ------------------------------------------------
    Id | Name | Code | Attribute | Amount
    ------------------------------------------------
    1 | AV | 123 | Alpha | 233
    ------------------------------------------------
    2 | TV | 122 | Beta | 235
    ------------------------------------------------
    3 | TV | 123 | Gama | 238
    ------------------------------------------------
    4 | CD | 122 | Beta | 239
    ------------------------------------------------
    5 | TP | 122 | Beta | 240
    ------------------------------------------------
    6 | RX | 123 | Alpha | 241
    ------------------------------------------------


    I'm querying it as:



    select id,name, code, attribute, amount
    from attb
    where code = 123 and attribute='Alpha'
    UNION
    select id,name, code, attribute, amount
    from attb
    where code = 122;


    It return the following





    Id | Name | Code | Attribute | Amount 
    ------------------------------------------------
    1 | AV | 123 | Alpha | 233
    ------------------------------------------------
    2 | TV | 122 | Beta | 235
    ------------------------------------------------
    4 | CD | 122 | Beta | 239
    ------------------------------------------------
    5 | TP | 122 | Beta | 240
    ------------------------------------------------
    6 | RX | 123 | Alpha | 241
    ------------------------------------------------


    Is there a way I can combine two queries instead of using UNION operator? or Any better implementation?










    share|improve this question

























      1












      1








      1








      I have a table: attb



      ------------------------------------------------
      Id | Name | Code | Attribute | Amount
      ------------------------------------------------
      1 | AV | 123 | Alpha | 233
      ------------------------------------------------
      2 | TV | 122 | Beta | 235
      ------------------------------------------------
      3 | TV | 123 | Gama | 238
      ------------------------------------------------
      4 | CD | 122 | Beta | 239
      ------------------------------------------------
      5 | TP | 122 | Beta | 240
      ------------------------------------------------
      6 | RX | 123 | Alpha | 241
      ------------------------------------------------


      I'm querying it as:



      select id,name, code, attribute, amount
      from attb
      where code = 123 and attribute='Alpha'
      UNION
      select id,name, code, attribute, amount
      from attb
      where code = 122;


      It return the following





      Id | Name | Code | Attribute | Amount 
      ------------------------------------------------
      1 | AV | 123 | Alpha | 233
      ------------------------------------------------
      2 | TV | 122 | Beta | 235
      ------------------------------------------------
      4 | CD | 122 | Beta | 239
      ------------------------------------------------
      5 | TP | 122 | Beta | 240
      ------------------------------------------------
      6 | RX | 123 | Alpha | 241
      ------------------------------------------------


      Is there a way I can combine two queries instead of using UNION operator? or Any better implementation?










      share|improve this question














      I have a table: attb



      ------------------------------------------------
      Id | Name | Code | Attribute | Amount
      ------------------------------------------------
      1 | AV | 123 | Alpha | 233
      ------------------------------------------------
      2 | TV | 122 | Beta | 235
      ------------------------------------------------
      3 | TV | 123 | Gama | 238
      ------------------------------------------------
      4 | CD | 122 | Beta | 239
      ------------------------------------------------
      5 | TP | 122 | Beta | 240
      ------------------------------------------------
      6 | RX | 123 | Alpha | 241
      ------------------------------------------------


      I'm querying it as:



      select id,name, code, attribute, amount
      from attb
      where code = 123 and attribute='Alpha'
      UNION
      select id,name, code, attribute, amount
      from attb
      where code = 122;


      It return the following





      Id | Name | Code | Attribute | Amount 
      ------------------------------------------------
      1 | AV | 123 | Alpha | 233
      ------------------------------------------------
      2 | TV | 122 | Beta | 235
      ------------------------------------------------
      4 | CD | 122 | Beta | 239
      ------------------------------------------------
      5 | TP | 122 | Beta | 240
      ------------------------------------------------
      6 | RX | 123 | Alpha | 241
      ------------------------------------------------


      Is there a way I can combine two queries instead of using UNION operator? or Any better implementation?







      mysql sql oracle sybase






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 13 '18 at 23:18









      RV.RV.

      198115




      198115
























          3 Answers
          3






          active

          oldest

          votes


















          1














          Just put both where clauses into one query:



          select id,name, code, attribute, amount
          from attb
          where (code = 123 and attribute='Alpha')
          or code = 122;


          Output:



          id  name  code  attribute  amount
          1 AV 123 Alpha 233
          2 TV 122 Beta 235
          4 CD 122 Beta 239
          5 TP 122 Beta 240
          6 RX 123 Alpha 241


          SQLFiddle demo






          share|improve this answer































            0














            Pretty easily. Just use or.



            select id,name, code, attribute, amount
            from attb
            where (code = 123 and attribute='Alpha') OR code = 122





            share|improve this answer































              0














              Try this.



              select id,name, code, attribute, amount
              from attb
              where ((code = 123 and attribute='Alpha') or (code = 122))





              share|improve this answer























                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%2f53290924%2fhow-to-replace-union-in-sql-query%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














                Just put both where clauses into one query:



                select id,name, code, attribute, amount
                from attb
                where (code = 123 and attribute='Alpha')
                or code = 122;


                Output:



                id  name  code  attribute  amount
                1 AV 123 Alpha 233
                2 TV 122 Beta 235
                4 CD 122 Beta 239
                5 TP 122 Beta 240
                6 RX 123 Alpha 241


                SQLFiddle demo






                share|improve this answer




























                  1














                  Just put both where clauses into one query:



                  select id,name, code, attribute, amount
                  from attb
                  where (code = 123 and attribute='Alpha')
                  or code = 122;


                  Output:



                  id  name  code  attribute  amount
                  1 AV 123 Alpha 233
                  2 TV 122 Beta 235
                  4 CD 122 Beta 239
                  5 TP 122 Beta 240
                  6 RX 123 Alpha 241


                  SQLFiddle demo






                  share|improve this answer


























                    1












                    1








                    1







                    Just put both where clauses into one query:



                    select id,name, code, attribute, amount
                    from attb
                    where (code = 123 and attribute='Alpha')
                    or code = 122;


                    Output:



                    id  name  code  attribute  amount
                    1 AV 123 Alpha 233
                    2 TV 122 Beta 235
                    4 CD 122 Beta 239
                    5 TP 122 Beta 240
                    6 RX 123 Alpha 241


                    SQLFiddle demo






                    share|improve this answer













                    Just put both where clauses into one query:



                    select id,name, code, attribute, amount
                    from attb
                    where (code = 123 and attribute='Alpha')
                    or code = 122;


                    Output:



                    id  name  code  attribute  amount
                    1 AV 123 Alpha 233
                    2 TV 122 Beta 235
                    4 CD 122 Beta 239
                    5 TP 122 Beta 240
                    6 RX 123 Alpha 241


                    SQLFiddle demo







                    share|improve this answer












                    share|improve this answer



                    share|improve this answer










                    answered Nov 13 '18 at 23:22









                    NickNick

                    27k111939




                    27k111939

























                        0














                        Pretty easily. Just use or.



                        select id,name, code, attribute, amount
                        from attb
                        where (code = 123 and attribute='Alpha') OR code = 122





                        share|improve this answer




























                          0














                          Pretty easily. Just use or.



                          select id,name, code, attribute, amount
                          from attb
                          where (code = 123 and attribute='Alpha') OR code = 122





                          share|improve this answer


























                            0












                            0








                            0







                            Pretty easily. Just use or.



                            select id,name, code, attribute, amount
                            from attb
                            where (code = 123 and attribute='Alpha') OR code = 122





                            share|improve this answer













                            Pretty easily. Just use or.



                            select id,name, code, attribute, amount
                            from attb
                            where (code = 123 and attribute='Alpha') OR code = 122






                            share|improve this answer












                            share|improve this answer



                            share|improve this answer










                            answered Nov 13 '18 at 23:22









                            Jordan SJordan S

                            3,069921




                            3,069921























                                0














                                Try this.



                                select id,name, code, attribute, amount
                                from attb
                                where ((code = 123 and attribute='Alpha') or (code = 122))





                                share|improve this answer




























                                  0














                                  Try this.



                                  select id,name, code, attribute, amount
                                  from attb
                                  where ((code = 123 and attribute='Alpha') or (code = 122))





                                  share|improve this answer


























                                    0












                                    0








                                    0







                                    Try this.



                                    select id,name, code, attribute, amount
                                    from attb
                                    where ((code = 123 and attribute='Alpha') or (code = 122))





                                    share|improve this answer













                                    Try this.



                                    select id,name, code, attribute, amount
                                    from attb
                                    where ((code = 123 and attribute='Alpha') or (code = 122))






                                    share|improve this answer












                                    share|improve this answer



                                    share|improve this answer










                                    answered Nov 13 '18 at 23:23









                                    Ashif NataliyaAshif Nataliya

                                    4321519




                                    4321519






























                                        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%2f53290924%2fhow-to-replace-union-in-sql-query%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

                                        Xamarin.iOS Cant Deploy on Iphone

                                        Glorious Revolution

                                        Dulmage-Mendelsohn matrix decomposition in Python