从其他表中删除MySql

时间:2017-10-20 15:45:13

标签: mysql delete-row

我有两张桌子

表1:

pnr, dmax
01,  2017-02-02 11:10:00
02,  2017-05-02 10:10:10

和table2:

pnr, type, loc, dt
01,  c3,   l2,  2017-02-02 11:10:00
01,  c3,   l2,  2017-01-01 09:00:00
01,  c3,   l3,  2017-01-01 07:54:30
02,  c5,   l1,  2017-02-05 01:10:00
02,  c5,   l2,  2017-03-01 19:00:10
02,  c5,   l3,  2017-05-02 10:10:10

我想删除Table2中的所有行,表1中找不到哪一对但我仍然坚持使用我有限的mysql知识

类似.....其中pnr = pnr AND dmax!= dt

请帮助

2 个答案:

答案 0 :(得分:1)

DELETE  table2
FROM    table2
        LEFT JOIN table1
            ON table1.pnr = table2.pnr AND table1.dmax = table2.dt
WHERE   table1.pnr IS NULL

上述声明使用基本LEFT JOIN。这将在右表中返回NULL,其中左侧没有找到记录,这些是我们要删除的记录,因此我们将IS NULL添加到where子句

答案 1 :(得分:0)

你需要: getFrameSummary