2011-03-15 70 views
0

表1 - 具有表2 &表3獲取表數據不包括約束

表2

表3

  • 的任何數據,其存在於與約束表1與表2 & 3是有效的數據的約束。
  • 通過手動關閉約束,某些虛假數據以某種方式進入table1。
  • 我想收集那些僅存在於table1中的數據,沒有任何限制。

是否有一種簡單的方法來獲取mysql中沒有約束數據的table1數據?

謝謝。

回答

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;