こんにちは、次の表があります
------------------------------------------
| id | language | parentid | no_daughter |
------------------------------------------
| 1  |     1    |    0     |      2      |
------------------------------------------
| 1  |     1    |    0     |      2      |
------------------------------------------
| 2  |     1    |    1     |      1      |
------------------------------------------
| 2  |     2    |    1     |      1      |
------------------------------------------
| 3  |     1    |    1     |      0      |
------------------------------------------
| 3  |     2    |    1     |      0      |    
------------------------------------------
| 4  |     1    |    2     |      0      |
------------------------------------------
| 4  |     2    |    2     |      0      |
------------------------------------------
| 5  |     1    |    2     |      0      |
------------------------------------------
| 5  |     2    |    2     |      1      |
-----------------------------------------
| 5  |     1    |    4     |      1      |
------------------------------------------
| 5  |     2    |    4     |      1      |
------------------------------------------
シナリオ
languageすべてのレコードには、異なるIDを持つテーブルに複数の行があります。parentidこのレコードの親が誰であるかを示します。no_daughter列は、各レコードに対して、1つのレコードにいくつの子があるかを示します。理想的なシナリオでの手段no_daughter値2がの場合、同じテーブル内の2つのレコードである必要があるid = 1ことを意味します。ただし、レコードに言語に関して複数の出口がある場合、それは1つのレコードと見なされます。1parentid
私の問題
no_daughter値が正しくないレコードを見つける必要があります。つまり、が2の場合、そのIDを持つno_daughterレコードが2つ存在する必要があります。parentid上記の場合、とのレコードid = 1は有効です。ただし、このレコードの実際の娘は2でid = 2あるため、レコードを持つことは無効です。no_daughter = 1id=4
誰かがこれらの欠陥のある記録をどのように見つけることができるか教えてもらえますか?
回答後に更新
ケンクラークは持っていて、ショラは同じ結果を返す答えを出しました。たとえば、ショラクエリは
SELECT DISTINCT 
id 
FROM
tbl_info t 
INNER JOIN 
  (SELECT 
    parentid,
    COUNT(DISTINCT id) AS childs 
  FROM
    tbl_info 
  GROUP BY parentid) AS parentchildrelation 
  ON t.id = parentchildrelation.parentid 
  AND t.no_daughters != parentchildrelation.childs 
parentidこのクエリは、テーブルのどこかで使用されているが、値が間違っているIDを返しno_daughterます。no_daugterただし、列に値がparentidあるが、テーブルのどこにも使用されていないIDは返しません。たとえば、持っid = 5ていますが、表のようにno_daughter = 1使用されていません。parentidですから、それはまた欠陥のある記録です。しかし、上記のクエリはそのようなレコードをキャプチャしていません。
どんな助けでも大歓迎です。