Werner Van Belle schrieb:
Hello,

You might find the following challenging -or- you might now the answer :-)

Table Q
Subtable, field, val, ID
A         1      a    42
A         2      b    42
B         1      a    78
B         2      t    78
B         3      o    78
C         1      u    23

Table R
Subtableid, field, val
A           1      a
A           2      b

Table S
Subtableid, field, val
B           1      a
B           2      t

Table T
Subtableid, field, val
C           1      u
A           1      a
A           2      b

We now want to check whether table R is fully contained in table Q and what the ID is. In this case the answer should be 42. However if we would use table S and mathc it against table Q, then we should not get 78 back since field 3 is missing in table S.

Also, we might want to perform this operation in batch mode, where we provide a table such as T for which we then should get the return value
Subtable, field, val, ID
A         1      a    42
A         2      b    42
C         1      u    23

Is there anybody that bumped into a similar query and was able to solve it satisfactory ?

you can do a OUTER JOIN on subtableid, and than check for NULL values (with HAVING), which means that at least one field is missing in one of the tables


with sub selects:

untested:

  SELECT Subtable, ID
    FROM `T`
   WHERE ID NOT IN (
      SELECT ID
        FROM T
  OUTER JOIN Q
          ON T.Subtable = Q.Subtable
         AND T.field = Q.field
         AND T.val = Q.val
      HAVING ISNULL(Q.ID)
          OR ISNULL(T.ID)
     )


--
Sebastian Mendel

--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to