Multiple object pointer fields
Charles Yeomans
yeomans at desuetude.com
Thu Sep 15 12:25:20 CDT 2005
On Sep 15, 2005, at 11:58 AM, Chris Sheffield wrote:
> Okay, hopefully I can explain this well enough that one of you will be
> able to give me a hint. I'm using Revolution and Valentina 1.x, but
> this is really more of a SQL question than anything I think.
>
> I have three tables: Teachers, Classes, and Students. The Students
> table contains an ObjectPtr field to Teachers and one to Classes. I
> am currently using the following query to retrieve the data I need for
> Teachers, Classes, and Students, and this works perfectly:
>
> SELECT Teachers.RecID, Teachers.FirstName, Teachers.LastName,
> Classes.ClassName, Classes.Reading, Students.FirstName,
> Students.LastName, Students.Grade, Teachers.Type FROM Teachers,
> Classes, Students WHERE Classes.TeacherPtr=*Teachers.RecID AND
> Students.ClassPtr*=Classes.RecID
>
> Basically what this does is retrieve all the teachers along with any
> classes and/or students that might be assigned to them. Now, what I
> need to do is alter my Students table and add the ability for a
> student to be assigned to a second teacher and class. So I've added
> another ObjectPtr field that points to Teachers and another one that
> points to Classes. So what I need is a query similar to the above
> that will retrieve what I need.
>
> Unfortunately, if I simply add "AND Students.ClassPtr2*=Classes.RecID"
> to the end of my query, I get an empty set. I figure there's got to
> be a way to get what I want. I'm just not doing the joins correctly
> or something. Can someone help? Let me know if you need more info.
> I could even send a sample database with data if necessary.
What you want is a many-many relationship between Teachers and
Students. For that you need a join table. This is a table that
contains two ObjectPtr fields, one pointing to Students and one
pointing to Teachers.
--------------
Charles Yeomans
More information about the Valentina
mailing list