sql - Where clause to check against two columns in another table -
i struggling answer reason.
i have 2 tables, table1 , table2 this:
table1:
id location warehouse 1 london narnia 2 cyprus metro 3 norway neck 4 paris triumph
table2:
id area code 1 london narnia 2 cyprus metro 3 norway triumph 4 paris neck
i need first select table1 table1.location
in table2.area
and table1.warehouse
in table2.code
given that table1.location
in table2.area
. i.e. want:
id location warehouse 1 london narnia 2 cyprus metro
i have got to:
select 1.location , 1.warehouse table1 1 1.location in (select area table2) , 1.warehouse in (select code table2)
but won't work because need second clause executed based on first clause holding true.
i have tried similar queries joins no avail.
is there simple way this?
use exists
:
select t.location, t.warehouse table1 t exists (select 1 table2 t2 t.location = t2.area , t.warehouse = t2.code );
i should point out databases support row constructors in
. allows do:
select t.location, t.warehouse table1 t where(t1.location, t1.warehouse) in (select t2.area, t2.code table2 t2);
Comments
Post a Comment