Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
需要添加到子查询中,或者是否需要在外部添加一个have。我不确定您所说的“…看看它是否有效。”正如我所料,MySQL直到我删除该行和下一行(和qualdateelimdate)和。是的,我知道-我确实保持了语法的正确性。但只要WHERE子句中有任何对eli_Mysql_Performance_Join_Explain - Fatal编程技术网

需要添加到子查询中,或者是否需要在外部添加一个have。我不确定您所说的“…看看它是否有效。”正如我所料,MySQL直到我删除该行和下一行(和qualdateelimdate)和。是的,我知道-我确实保持了语法的正确性。但只要WHERE子句中有任何对eli

需要添加到子查询中,或者是否需要在外部添加一个have。我不确定您所说的“…看看它是否有效。”正如我所料,MySQL直到我删除该行和下一行(和qualdateelimdate)和。是的,我知道-我确实保持了语法的正确性。但只要WHERE子句中有任何对eli,mysql,performance,join,explain,Mysql,Performance,Join,Explain,需要添加到子查询中,或者是否需要在外部添加一个have。我不确定您所说的“…看看它是否有效。”正如我所料,MySQL直到我删除该行和下一行(和qualdateelimdate)和。是的,我知道-我确实保持了语法的正确性。但只要WHERE子句中有任何对elimdate或qualdate的引用,它就会抱怨它是一个未知列,因为在解释WHERE时,这两个别名还不存在。 CREATE TABLE `contact` ( `ContactID` int(11) unsigned NOT NULL auto


需要添加到子查询中,或者是否需要在外部添加一个
have
。我不确定您所说的“…看看它是否有效。”正如我所料,MySQL直到我删除该行和下一行(
和qualdate
)才停止抱怨,删除这两行自然破坏了这个查询的全部目的——执行和返回5957行所用的时间一样长,而正确的数字应该是87行。对不起,我应该建议删除
(elimdate为NULL或qualdate>elimdate)和
。是的,我知道-我确实保持了语法的正确性。但只要WHERE子句中有任何对elimdate或qualdate的引用,它就会抱怨它是一个未知列,因为在解释WHERE时,这两个别名还不存在。
CREATE TABLE `contact` (
 `ContactID` int(11) unsigned NOT NULL auto_increment,
 `PersonID` int(11) unsigned NOT NULL default '0',
 `ContactTypeID` int(11) unsigned NOT NULL default '0',
 `ContactDate` date NOT NULL default '0000-00-00',
 `Description` text,
 PRIMARY KEY  (`ContactID`),
 KEY `ContactDate` (`ContactDate`),
 KEY `PersonID` (`PersonID`),
 KEY `ContactTypeID` (`ContactTypeID`)
) ENGINE=MyISAM AUTO_INCREMENT=16901 DEFAULT CHARSET=utf8

CREATE TABLE `percat` (
 `PersonID` int(11) unsigned NOT NULL default '0',
 `CategoryID` int(11) unsigned NOT NULL default '0',
 PRIMARY KEY  (`PersonID`,`CategoryID`),
 KEY `CategoryID` (`CategoryID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8

CREATE TABLE `person` (
 `PersonID` int(11) unsigned NOT NULL auto_increment,
 `FullName` varchar(100) NOT NULL default '',
 `Furigana` varchar(100) NOT NULL default '',
 `Sex` enum('','M','F') character set ascii NOT NULL default '',
 `HouseholdID` int(11) unsigned NOT NULL default '0',
 `Relation` varchar(6) character set ascii NOT NULL default '',
 `Title` varchar(6) NOT NULL default '',
 `CellPhone` varchar(30) character set ascii NOT NULL default '',
 `Email` varchar(70) character set ascii NOT NULL default '',
 `Birthdate` date NOT NULL default '0000-00-00',
 `Country` varchar(30) NOT NULL default '',
 `URL` varchar(150) NOT NULL default '',
 `Organization` tinyint(1) NOT NULL default '0',
 `Remarks` text NOT NULL,
 `Photo` tinyint(1) NOT NULL default '0',
 `UpdDate` date NOT NULL default '0000-00-00',
 PRIMARY KEY  (`PersonID`),
 KEY `Furigana` (`Furigana`),
 KEY `FullName` (`FullName`),
 KEY `Email` (`Email`),
 KEY `Organization` (`Organization`,`Furigana`)
) ENGINE=MyISAM AUTO_INCREMENT=6063 DEFAULT CHARSET=utf8
SELECT
  p.PersonID,
  FullName,
  Furigana,
  (SELECT MAX(ContactDate) FROM contact cq
    WHERE cq.PersonID=p.PersonID
    AND  cq.ContactTypeID IN (22,26,45))
  AS qualdate,
  (SELECT MAX(ContactDate) FROM contact ce
    WHERE ce.PersonID=p.PersonID
    AND ce.ContactTypeID IN (25,31,30,41,23,42,2,33,35,29,12))
  AS elimdate
FROM person p
WHERE (elimdate IS NULL OR qualdate > elimdate)
AND qualdate < CURDATE()-INTERVAL 7 DAY
AND NOT EXISTS (SELECT * FROM percat WHERE CategoryID=38 AND percat.PersonID=p.PersonID)
ORDER BY qualdate
INDEX(qualdate)
FROM ( SELECT ... )
JOIN ( SELECT ... )
SELECT  ..., 
        ( SELECT MAX(...) ... )  AS qualdate,
        ( SELECT MAX(...) ... )  AS elimdate
    FROM ...
elimdate IS NOT NULL
qualdate < CURDATE()-INTERVAL 7 DAY
overseas.PersonID IS NOT NULL