tabletouser表
submit 表
查詢submit表中的記錄,只需要年份(time)和表名(tab_id) ,但是如果在tabletouser表中存在相同的年份(year)和表(tabletouser)則不能從submit中提取出
開始想從 submit表中得到年和表,從tabletouser中得到年和表,從submit中去除tabletouser的記錄,但是效果不好,因爲同時包含兩個字段,開始學mysql,技術有限,沒能實現
最後,想到這個方法:
兩個表中都有年和表字段,將這兩個字段拼成字符串,形成一個標誌,然後用not in 即可查出submit中不包含tabletouser中數據的記錄
SELECT DISTINCT tab_id,DATE_FORMAT(t.`time`,'%Y') FROM tzb_submit t WHERE LEFT(t.`submit_id`,7) NOT IN (SELECT CONCAT(a.`year`,LPAD(a.`table_id`,3,0)) submit_id FROM tabletouser
a)
字符串格式化
LPAD(a.`table_id`,3,0)《LPAD(str,length,str)》 從a.`table_id`的左邊添加0,直到字符長度爲3,如果本身超過3,則從左截取3個長度 3--》003 12-》012
字符串合併
CONCAT(str,str,..)合併兩個字符串 2014+ 003——》2014003
字符串截取
LEFT(t.`submit_id`,7)從t.submit_id的左邊開始截取7位長度,2014003002-》2014003