获取表数据不包括约束

时间:2011-03-15 01:02:58

标签: mysql

表1 - 具有表2和表2的约束。表3

表2

表3

  • 表1中存在的任何数据,其中包含表2和表2的约束。 3是有效数据。
  • 通过手动关闭约束,在表1中以某种方式输入了一些虚假数据。
  • 我想收集那些只存在于table1中且没有任何约束的数据。

有没有一种简单的方法可以在mysql中获取没有附加约束数据的table1数据?

感谢。

1 个答案:

答案 0 :(得分:0)

如果我理解您的问题,您正在查找父表中的丢失或伪造记录。我想象table2和table3中的约束字段是id,table1中的fk字段是table2_idtable3_id。如果是这种情况,您将查询缺少的连接:

SELECT t1.id, t1.table2_id, t1.table3_id FROM table1 t1 
LEFT JOIN table2 t2 ON t2.id = t1.table2_id
LEFT JOIN table3 t3 ON t3.id = t1.table3_id
WHERE t1.table2_id IS NULL
OR t1.table3_id IS NULL;