加入此查询的最佳方式

时间:2013-05-03 10:48:43

标签: mysql performance

我有以下表格和数据:

Tables
-----------
CREATE TABLE primarys 
( primaryid BIGINT(20) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (primaryid));

CREATE TABLE patients
( primaryid BIGINT(20) NOT NULL,
patientid BIGINT(20),
patientName VARCHAR(50),
PRIMARY KEY (primaryid));

CREATE TABLE patientvisit
( primaryid BIGINT(20) NOT NULL,
visitid BIGINT(20),
visitdate DATE,
PRIMARY KEY (primaryid));

Data
---------
INSERT INTO primarys values (1);
INSERT INTO primarys values (7286);
INSERT INTO primarys values (7287);

INSERT INTO patients VALUES (1,'1','John');
INSERT INTO patients VALUES (7286,'1', '');
INSERT INTO patients VALUES (7287,'1', '');

INSERT INTO patientvisit VALUES (7286,'1','1997-12-18');
INSERT INTO patientvisit VALUES (7287,'2','1998-02-25');

我需要编写一个输出数据的查询,如下所示:

primaryid   |  patientid    |   patientname    |  visit   |  visitdate
------------------------------------------------ 
7286        |   1           |  John            |   1      |  1997-12-18
7287        |   1           |  John            |   2      |  1998-02-25

我可以弄清楚如何使用外部联接和子查询来完成这项工作,但是当我开始添加大型数据集时,mysql性能开始显着下降。

如果有人能够建议最优化的方式来查询这些数据并获得所需的输出,我将非常感激。

由于

1 个答案:

答案 0 :(得分:0)

对于您在问题中显示的具体值,此查询可以执行此操作。

SELECT q2.primaryid, q_1, q_2, q_4, q_5 FROM questions_101_200 q2
CROSS JOIN questions_1_100 

但是你的数据和结构对我来说没有多大意义。如果你详细解释你想要做什么,我可以给你一个更有意义的答案。