テーブル X (形式: yyyy) に生年属性があり、テーブル Y (別の形式: dd-mm-yyyy) に生年月日属性があるという問題があります。
どちらも varchar() 型の属性です。これらの属性でこれらのテーブルを結合したいと考えています。たとえば、同じ年に生まれたすべての人の名前を選択したいとします。これどうやってするの?
テーブル X (形式: yyyy) に生年属性があり、テーブル Y (別の形式: dd-mm-yyyy) に生年月日属性があるという問題があります。
どちらも varchar() 型の属性です。これらの属性でこれらのテーブルを結合したいと考えています。たとえば、同じ年に生まれたすべての人の名前を選択したいとします。これどうやってするの?
(更新) 生年月日属性の最後の 4 文字が一貫して年であると仮定して、次のことを試してください。
select...
from X
join Y on X.year_of_birth = substr(Y.date_of_birth, length(Y.date_of_birth)-3,4)
ここでSQLFiddle 。
使ってみてDATE_FORMAT()
JOIN table2 ON DATE_FORMAT(table1.bday, "%Y") = DATE_FORMAT(table2.bday, "%Y")