简单一点 delete A.* from A,(select id,day from B)C where A.id=C.id and A.day=C.day
以下是依据天池金融大赛给的数据建立的表做的操作,这是一个比较复杂的sql
delete fin_sh_price.* from fin_sh_price , (SELECT
A.TICKER_SYMBOL,
A.PUBLISH_DATE,
A.T_REVENUE,
A.REPORT_TYPE
FROM
(
SELECT
`TICKER_SYMBOL_股票代码` AS TICKER_SYMBOL,
`PUBLISH_DATE_发布日期` AS PUBLISH_DATE,
`END_DATE_REP_报告截止日期` AS END_DATE_REP,
`T_REVENUE_营业总收入` AS T_REVENUE,
`REPORT_TYPE_报告类型` as REPORT_TYPE
FROM
`income statement_general business` where `REPORT_TYPE_报告类型` in ("A","Q3")
) A
JOIN (
SELECT
`TICKER_SYMBOL_股票代码` AS TICKER_SYMBOL,
`PUBLISH_DATE_发布日期` AS PUBLISH_DATE,
max(
`END_DATE_REP_报告截止日期`
) AS END_DATE_REP
FROM
`income statement_general business`
GROUP BY
`TICKER_SYMBOL_股票代码`,
`PUBLISH_DATE_发布日期`
) B ON A.TICKER_SYMBOL = B.TICKER_SYMBOL
AND A.PUBLISH_DATE = B.PUBLISH_DATE
AND A.END_DATE_REP = B.END_DATE_REP )D where fin_sh_price.symbol=D.TICKER_SYMBOL and fin_sh_price.publish_date=D.PUBLISH_DATE;