「複雑な」選択に問題があります。私は別のテーブル(年間1)を持っている、と彼らは次のようになります。昨年MySQL選択、サブクエリなど
:個人が2つ(またはそれ以上に表示されたときに、ある
ShortName LongName Year
Nam1 Name One 2016
Nam2 Name Two 2016
...
Namn Name N 2016
年2015
ShortName LongName Year
Nam1 Name AltOne 2015
Nam4 Name AltFour 2015
...
Namn Name AltN 2015
を)年、観測は同じShortNameを持っていますが、LongNameは毎年異なる場合があります。個体は年を経て繰り返されるかもしれない(またはそうでないかもしれない)。
すべてのテーブルのすべての個人に最新のLongNameを選択します。つまり、Nam16個体が2016年と2015年に登場します。私は彼女の最後のLongNameを選択したいのですが、これは「名前1」です。 Nam2も同様です。
Nam4は2016年には表示されませんが、2015年には表示されますので、「名前AltFour」を選択します。
最終選択は次のようになります。
ShortName LongName Year
Nam1 Name One 2016
Nam2 Name Two 2016
Nam4 Name AltFour 2015
Namn Name N 2016
私は2016年から2013年までのテーブルを持っているあなたの助けのためにありがとうございました。このような
データベースの最初のルールは、4つの異なるテーブルで4年間テーブルを分割しないでください。データベースの第2の規則は、4つの異なるテーブルに4年間テーブルを分割しないでください。 'union all'を使用して素敵なインデックスを使用しないために遅いことを除いて、間違いを修正して、それをただ一つのテーブルのように照会することができます:' select * from(select * from table1 union all select * from table2 union all ...)aが存在しない(select * from(select * from table1 union all select * from table2 union all ...)a1ここで、a1.Shortname = a.Shortnameおよびa.Year
Solarflare
ご意見ありがとうございます。私が異なるテーブルを持っているのは、この問題に関連するものを除けば、毎年異なる変数があるからです。 – Javi
Javi、おそらく "年"テーブルにリンクされているさまざまな変数セットのテーブルを作成する方が良いでしょう。 – Uueerdo