我有以下表和數據:最佳方式加入此查詢
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性能開始顯着下降。
如果有人能提出最優化的方式來查詢這些數據並獲得所需的輸出,我將不勝感激。
謝謝
您可以嘗試索引鍵列。 – kwelsan 2013-05-03 11:00:29
桌子「questions_1_100」與其他桌子有什麼關係?通過哪一列? – 2013-05-03 11:06:26
索引會有所幫助,但是我擔心你提到的子查詢與我的猜測一樣,如何將這些表連接在一起不需要子查詢。如果你使用的是相關的子查詢,那麼這也可能解釋了糟糕的性能。 – Kickstart 2013-05-03 12:58:31