0

我有三张桌子。

Person (id, FirstName, LastName, BirthDate)
Contact (id, contact, type)
PersonContact( Person_id, Contact_id )

如您所见, Person_id 来自 PersonContact 表中的 Person 表,而 Contact_id 来自 PersonContact 表中的 Contact 表

我想编写一个查询,该查询应将 PersonContact 表的 Person_id 列与 Person 表的 id 列关联为外键。

PersonContact 的 Contact_id 列,以 Contact 表的 id 列作为外键

4

3 回答 3

3

这应该可以解决问题

CREATE TABLE IF NOT EXISTS `person_contact` (
  `contact_id` int(11) NOT NULL,
  `person_id` int(11) NOT NULL,
  PRIMARY KEY (`contact_id`,`person_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1;


ALTER TABLE `person_contact`
  ADD CONSTRAINT `person_contact_ibfk_2` FOREIGN KEY (`person_id`) REFERENCES `person` (`id`),
  ADD CONSTRAINT `person_contact_ibfk_1` FOREIGN KEY (`contact_id`) REFERENCES `contact` (`id`);
于 2011-04-18T15:34:29.323 回答
0

http://dev.mysql.com/doc/refman/5.1/en/alter-table.html

alter PersonContact add foreign key(PersonID) references Person(ID)

要选择,您可以:

select *
    from Person
        inner join PersonContact on(Person.ID=PersonContact.PersonID)
于 2011-04-18T15:35:36.617 回答
0

这是我在 T-SQL 方面价值 0.02 美元的建议

从 Person p 中选择 FirstName、LastName、BirthDate 加入 PersonContact pc ON p.id= pc.Person_id

选择联系人,输入 From Contact c 加入 PersonContact pc ON c.id= pc.Person_id

于 2011-04-18T15:45:54.487 回答