Hello, everyone -- I have received a great deal of help from many members of this list, so I'd like to acknowledge that now. Someday, when I have my head wrapped around this stuff, I hope to return the favor. In the meantime, however, I have come across my worst brainbuster yet. Any help on this is greatly appreciated.
I constructed my tables in the most "normalized" way that I could (without overdoing it), so that in some cases, there is no -direct- relationship between tables. That is, I have a table called "people" and a table called "files", and a foreign key table called "filespeople": Database: medialab_db Table: people +-------------+----------------------+------+-----+ | Field | Type | Null | Key | +-------------+----------------------+------+-----+ | people_id | smallint(5) unsigned | | PRI | (auto-incremented) | first_name | varchar(36) | | | | last_name | varchar(36) | | | +-------------+----------------------+------+-----+ Database: medialab_db Table: files +-------------+-----------------------+------+-----+ | Field | Type | Null | Key | +-------------+-----------------------+------+-----+ | file_id | mediumint(8) unsigned | | PRI | (auto-incremented) | file_name | varchar(64) | | | +-------------+-----------------------+------+-----+ Database: medialab_db Table: filespeople +-----------+-----------------------+------+-----+ | Field | Type | Null | Key | +-----------+-----------------------+------+-----+ | file_id | mediumint(8) unsigned | | PRI | | people_id | smallint(5) unsigned | | PRI | +-----------+-----------------------+------+-----+ The relationship, in real life, is that I would like to establish many-to-many relationships between "files" records and "people" records, so that a record in "files" would be associated with several people from "people". There is a foreign key table called "filespeople". The SQL used to write a SELECT statement would use the join like so: SELECT files.file_name, people.first_name, people.last_name FROM files, people, filespeople WHERE files.file_name = $filename AND files.file_id = filespeople.file_id AND people.people_id = filespeople.people_id (the $filename variable is a user-selected variable, I'm using PHP) So I designed my "files" and "people" tables without any direct relationship with one another, thinking to link them with the SELECT statement. What I completely forgot, up until this point, was that I would need to INSERT these records (from pre-written HTML/PHP forms), and there is no WHERE clause in the INSERT statement to keep everything together. In my scenario, a user might add a record to "files" and wish to associate that record to some of the records in "people", either new or pre-existing (typed into an HTML text input form or something). How should SQL code be arranged to "link" these records over the foreign key table? INSERT INTO files (file_name) VALUES ("$filename") and INSERT INTO people (first_name, last_name) VALUES ("$firstname", "$lastname") but... to keep it all together... is lost on me... and then later to have UPDATE statements to do the same thing! Although I suspect this may be easier as I can use the WHERE clause in an UPDATE statement. If anyone has a link to a tutorial on this very concept, that would be greatly appreciated as well! Thank you, Erik --------------------------------------------------------------------- Before posting, please check: http://www.mysql.com/manual.php (the manual) http://lists.mysql.com/ (the list archive) To request this thread, e-mail <[EMAIL PROTECTED]> To unsubscribe, e-mail <[EMAIL PROTECTED]> Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php