複数の SQL ステートメントを含む MySQL ステートメントを作成しようとしています。
私がやろうとしていること:
2 つのテーブルを取得しますproject
& jiraissue
.
表:プロジェクト
Columns:
ID decimal(18,0) PK
pname varchar(255)
URL varchar(255)
LEAD varchar(255)
DESCRIPTION text
pkey varchar(255)
pcounter decimal(18,0)
ASSIGNEETYPE decimal(18,0)
表:ジライシュー
Columns:
ID decimal(18,0) PK
pkey varchar(255)
PROJECT decimal(18,0)
REPORTER varchar(255)
ASSIGNEE varchar(255)
issuetype varchar(255)
SUMMARY varchar(255)
DESCRIPTION longtext
ENVIRONMENT longtext
PRIORITY varchar(255)
RESOLUTION varchar(255)
issuestatus varchar(255)
CREATED datetime
UPDATED datetime
DUEDATE datetime
VOTES decimal(18,0)
TIMEORIGINALESTIMATE decimal(18,0)
TIMEESTIMATE decimal(18,0)
TIMESPENT decimal(18,0)
WORKFLOW_ID decimal(18,0)
SECURITY decimal(18,0)
FIXFOR decimal(18,0)
COMPONENT decimal(18,0)
私の目標は、最新号が 2012 年より前に更新されたプロジェクト (project.pname) の名前 (jiraissue.UPDATED) を取得することです。
例:最新号が 2012 年 11 月 21 日に更新され
たプロジェクトABCを取得します。Project XYZのもう 1 つの最新号は、2011 年 8 月 12 日に最後に更新されました。したがって、私の SQL スクリプトは、最初のABCではなく、 2 番目のプロジェクトXYZ
の名前を教えてくれるはずです。
STATIC プロジェクト ID を持つ最新の問題を見つけるための作業スクリプトは次のとおりです。
SELECT
pkey
FROM
jiraissue
WHERE
UPDATED = (SELECT
max(UPDATED)
FROM
jiraissue
WHERE
PROJECT = 10472)
しかし、これらすべてのプロジェクトのプロジェクト名が必要な場合、スクリプトはどうなっていますか? 私の試みはすべて処理時間がかかり、未定義のエラーが返されます...
編集: 今、私は次のコードを取得します:
select
p.pname, j.pkey
from
project p
inner join
jiraissue j ON j.ID = (select
PROJECT
from
jiraissue
where
UPDATED = (SELECT
max(UPDATED)
from
jiraissue))
AND p.ID = j.PROJECT
結果は、最も低いキーを持つ最初のプロジェクトにすぎません... すべてのプロジェクトを参照するにはどうすればよいですか?
編集:
select
p.pname, j.pkey, j.UPDATED
from
project p
inner join
jiraissue j
where
j.ID = (select
PROJECT
from
jiraissue
where
UPDATED = (SELECT
max(UPDATED)
from
jiraissue
where
UPDATED < '2012-01-01 00:00:00'))
and p.ID = j.PROJECT
それは私が欲しいものをすべて表示します。しかし、最初のプロジェクトだけです。だから私はすべてのプロジェクトが必要です!! 1 つのプロジェクトだけでなく、すべてのプロジェクトを選択するにはどうすればよいですか?