skip to Main Content

I want to implement the below query

Select * from table1
where a in(select a,b,c,d,e from table2 order by date desc limit 5)

But IN statement is allowing only 1 column.

2

Answers


  1. You can use the where clause in following

    Select * from table1
    where (a,a,a,a,a) in(select a,b,c,d,e from table2 order by date desc limit 5)
    
    Login or Signup to reply.
  2. The fact that you need to do this suggests your design could use a rethink. But assuming the goal is to compare "a" from table1 separately to each column’s value for table2, you can do it like this:

     ... in (select unnest(array[a,b,c,d,e]) from (select * from table2 order by date limit 5) foo )
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search