Thread

  1. select items based on 2 columns

    Shaozhong SHI <shishaozhong@gmail.com> — 2022-08-08T08:24:14Z

    The following is the type of data:
    
    id  id_b   in    out
    51 57     false false
    51 42     true   false
    51   32   false  false
    51   76   false  true
    51  49     true   false
    
    
    How to do the following:
    
    select id from tbl   if in is true and out is true are found?
    
    Regards,
    
    David
    
  2. Re: select items based on 2 columns

    Frank Streitzig <fstreitzig@gmx.net> — 2022-08-08T09:32:17Z

    Am Mon, Aug 08, 2022 at 09:24:14AM +0100 schrieb Shaozhong SHI:
    > The following is the type of data:
    >
    > id  id_b   in    out
    > 51 57     false false
    > 51 42     true   false
    > 51   32   false  false
    > 51   76   false  true
    > 51  49     true   false
    >
    >
    > How to do the following:
    >
    > select id from tbl   if in is true and out is true are found?
    
    Untested:
    select t.id from tbl t where t.in and t.out;
    
    Best regards,
    Frank
    
    >
    > Regards,
    >
    > David
    
    
    
    
  3. Re: select items based on 2 columns

    Pierre Chevalier <pierre.chevalier1967@free.fr> — 2022-08-08T16:17:50Z

    Hello,
    
    Short answer:
    SELECT id FROM tbl WHERE in and out;
    
    
    BUT this will never work as is.
    
    
    Longer answer:
    First of all, it would be better not to name fields with word having a meaning in SQL: "in" is not accepted as a valid field name.
     From now on, to get rid of this problem, I renamed the in and out fields by appending an "x" at the end: "in" becomes "inx" and "out" becomes "outx".
    
    Here is the complete answer; I added some data matching your criteria:
    
    -- Create the table:
    CREATE TEMPORARY TABLE tbl (id integer, id_b integer, inx boolean, outx boolean);
    
    -- Put some data into it:
    INSERT INTO tbl (id, id_b, inx, outx) VALUES
    (51, 57, false, false),
    (51, 42,  true, false),
    (51, 32, false, false),
    (51, 76, false, true),
    (51, 49,  true, false),
    (51, 47,  true, true);
    
    -- Select id where inx is true and outx is true:
    SELECT id FROM tbl WHERE inx and outx;
    
    -- Output:
    ┌────┐
    │ id │
    ├────┤
    │ 51 │
    └────┘
    
    À+
    Pierre
    
    
    Le 08/08/2022 à 10:24, Shaozhong SHI a écrit :
    > The following is the type of data:
    >
    > id  id_b   in    out
    > 51 57     false false
    > 51 42     true   false
    > 51   32   false  false
    > 51   76   false  true
    > 51  49     true   false
    >
    >
    > How to do the following:
    >
    > select id from tbl   if in is true and out is true are found?
    >
    > Regards,
    >
    > David
    
    
    -- 
    Pierre Chevalier
    
  4. Re: select items based on 2 columns

    Carl Sopchak <carl@sopchak.me> — 2022-08-08T16:30:50Z

    <html>
      <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      </head>
      <body>
        <p>You can also quote column names that are SQL keywords, so "in"
          and "out" would also work, but I also agree that it's not great
          practice.  However, IMHO, IN and OUT doesn't tell you a lot.  In
          and out of what?  Inbound/outbound?  In_water / out_of_water?  You
          get the idea.  Using clear column names helps prevent misuse
          (intentional or not).<br>
        </p>
        <div class="moz-cite-prefix">On 8/8/22 12:17, Pierre Chevalier
          wrote:<br>
        </div>
        <blockquote type="cite"
          cite="mid:d74da674-0902-026e-8a63-a2b24086c9af@free.fr">
          <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          <div class="moz-cite-prefix">
            <pre>Hello,
    
    Short answer:
    SELECT id FROM tbl WHERE in and out;
    
    
    BUT this will never work as is.
    
    
    Longer answer:
    First of all, it would be better not to name fields with word having a meaning in SQL: "in" is not accepted as a valid field name.
    &gt;From now on, to get rid of this problem, I renamed the in and out fields by appending an "x" at the end: "in" becomes "inx" and "out" becomes "outx".
    
    Here is the complete answer; I added some data matching your criteria:
    
    -- Create the table:
    CREATE TEMPORARY TABLE tbl (id integer, id_b integer, inx boolean, outx boolean);
    
    -- Put some data into it:
    INSERT INTO tbl (id, id_b, inx, outx) VALUES
    (51, 57, false, false),
    (51, 42,  true, false),
    (51, 32, false, false),
    (51, 76, false, true),
    (51, 49,  true, false),
    (51, 47,  true, true);
    
    -- Select id where inx is true and outx is true:
    SELECT id FROM tbl WHERE inx and outx;
    
    -- Output:
    ┌────┐
    │ id │
    ├────┤
    │ 51 │
    └────┘</pre>
          </div>
          <div class="moz-cite-prefix"> </div>
          <div class="moz-cite-prefix">
            <pre>À+
    Pierre
    </pre>
          </div>
          <div class="moz-cite-prefix"><br>
          </div>
          <div class="moz-cite-prefix">Le 08/08/2022 à 10:24, Shaozhong SHI
            a écrit :<br>
          </div>
          <blockquote type="cite"
    cite="mid:CA+i5JwYCPBDcenq_godJqtjApLyOeJHxo-Joova3wrAYtM6QOA@mail.gmail.com">
            <meta http-equiv="content-type" content="text/html;
              charset=UTF-8">
            <div dir="ltr">The following is the type of data:
              <div><br>
              </div>
              <div>id  id_b   in    out</div>
              <div>51 57     false false</div>
              <div>51 42     true   false</div>
              <div>51   32   false  false</div>
              <div>51   76   false  true</div>
              <div>51  49     true   false</div>
              <div><br>
              </div>
              <div><br>
              </div>
              <div>How to do the following:</div>
              <div><br>
              </div>
              <div>select id from tbl   if in is true and out is true are
                found?</div>
              <div><br>
              </div>
              <div>Regards,</div>
              <div><br>
              </div>
              <div>David</div>
            </div>
          </blockquote>
          <p><br>
          </p>
          <pre class="moz-signature" cols="72">-- 
    Pierre Chevalier
    </pre>
        </blockquote>
      </body>
    </html>