我們常用的IN 操作是這樣的:
select * from tab t
where t.col1 in ('value1''value2');
1
2
但是如果是多個列的取值來自同一個子查詢呢?
我們是不是要這樣寫了?
select * from tab1 t1
where t1.col1 in (select col1 from tab2)
and t1.col2 in (select col2 from tab2);
1
2
3
現在分享一種簡便的方法給大家:
select * from tab t
where (t.col1,t.col2) in (select col1,col2 from tab2);
1
2
3
也就是這樣的
select * from tab t
where (t.col1,t.col2) in (('value','value1'),('value','value2'));
1
2
3
我還不知道為什么網上的一些文檔中為什么沒有提到這種寫法。
在這里寫出來是想分享給大家,另外這也是自己的一個筆記。
如果對這方面比較熟悉的朋友,有不同的看法,還希望多多指教。
另外,**如果自己覺得是對的,自己動手努力實踐出來。
當他人請教時,自己沒有嘗試成功之前,不要盲目否定。**
---------------------
作者:心隨自在飛
來源:CSDN
原文:https://blog.csdn.net/xiesq5112/article/details/52154169
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!