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).

On 8/8/22 12:17, Pierre Chevalier wrote:
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