postgres=# select * from test1 left join test2 on test1.id1=test2.id3 and test2.id3 is not null;
id1 | id2 | id3 | id4
-----+
-----+
-----+
-----2
|3|2
|323|
4|3|
5512|34
||(3 rows)
postgres=#
那我要大聲發問:test2.id3 is not null可以下推嗎(感覺上是可以的,因為它應用了nullable的表)?到底應不應該把test1.id1=test2.id3 and test2.id3 is not null看作整體的乙個連線條件來看呢,很疑惑。如果看作是乙個連線條件,那這個連線條件引用了nonnullable的表,貌似整體又不能下推。
test=# select * from test1;
id1 | id2 | id3
-----+
-----+
-----12
| dfg |322
| dfg |32(
2 rows)
test=# select * from test2;
id4 | id5 | id6
-----+
-------
+-----
12| dfg |
32162
| sdgsd |
302(
2 rows)
test=# select * from test1 left join test2 on test2.id4 = 13;
id1 | id2 | id3 | id4 | id5 | id6
-----+-----+-----+-----+-----+-----
12 | dfg | 32 | | |
2 | dfg | 32 | | |
(2 rows)
test=# create table test3
(id1 int
,id2 text,id3 int);
create table
test=# select * from test1 left join test3 on true
; id1 | id2 | id3 | id1 | id2 | id3
-----+
-----+
-----+
-----+
-----+
-----12
| dfg |32|
||2| dfg |32|
||(2 rows)
關於KMP演算法的重大發現
之前寫kmp模板的時候,nx i 代表最大的乙個x,使s 1,x 1 是s 1,i 1 的字尾。方法1 然而網上還有另一種方法求nx陣列,nx i 表示最大的乙個x,使s 1,x 是s 1,i 的字尾。方法2 兩種nx陣列在具體匹配的時候方法稍有不同,但都能正確匹配字串。但是在做字串dp題的時候,發...
資料庫的外連線 內連線 左外連線,全外連線
students表和advisors表 一 內連線 按照advistor id進行表的合併,合併後的資料只有兩個表中advistor id都有的值,對應的行 二 左外連線 按照advistor id進行的左外連線合併,保證表students中advistor id的每一列都在合併後的新錶中,對於ad...
外連線的語法
平時習慣了oracle的連線語法,每次看到join這種格式的,都要想半天。還是把它列一下,方便自己下次用。select table1.column,table2.column from table1 cross join table2 natural join table2 join table2 ...