-1

私は2つのテーブルを持っています:

Table_A
name1
create_date

Table_B
name2
keep_time

name1xxxxxx-yyyのようなものname2で、xxxxxxxのようなものです。 '-'で区切られname2た最初の部分です。name1

のすべての行を取得したいと思いますTable_A。その行は(now- keep_time)未満ですcreate_date

ご存知のように、問題は、「-」文字で分割しname1て最初の部分を取得し、対応するによってkeep_timeからを取得する方法です。Table_Bname2

そのようなクエリのためにMySQLでSQLを書く必要がありますか?

ありがとう

4

1 に答える 1

1

私があなたの要件を正しく理解した場合:

SELECT a.* FROM table_A a
  LEFT JOIN table_B b on b.name2 = SUBSTRING_INDEX(a.name1, '-', 1)
  WHERE DATEDIFF(NOW(), a.create_date) < b.keep_time  

編集:DateDiff。

于 2012-06-18T12:42:24.277 に答える