Thread: select items based on 2 columns

select items based on 2 columns

From
Shaozhong SHI
Date:
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

Re: select items based on 2 columns

From
Frank Streitzig
Date:
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



Re: select items based on 2 columns

From
Pierre Chevalier
Date:
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