有人可以帮我优化我的SQL查询。数据库是postgres。我的表结构如下:SQL查询优化
create table test_table(test_id integer NOT NULL, sequence_id integer NOT NULL,value1 integer NOT NULL, value2 integer NOT NULL, CONSTRAINT test_table_pk PRIMARY KEY (test_id , sequence_id))
create table test_event(event_id integer NOT NULL,test_id integer NOT NULL, sequence_id integer NOT NULL , CONSTRAINT test_event_pk PRIMARY KEY(event_id , test_id, sequence_id))
test_table
1,1, 200,300
2,2, 400,500
2,3, 600,700
2,4, 300,500
2,5, 200,900
test_event
1, 1,1
1, 2,2
1, 2,3
2, 2,4
2, 2,5
,我想所有的值1和值2,从TEST_TABLE其中sequence_id并为test_id对应于test_event于EVENT_ID = 1。 我的查询看起来像
SELECT
value1, value2
FROM
test_table
WHERE
sequence_id IN (
SELECT sequence_id
FROM test_event
WHERE event_id=1) AND
test_id IN (
SELECT test_id
FROM test_event
WHERE event_id=1)
有人可以请让我知道这是写这个查询的最佳方式?
'EXPLAIN ANALYSE SELECT ...'如果您想知道查询优化器真正想的是什么,请使用真实数据。如果您想知道查询优化器伪造的内容,请使用伪造数据。 –