MySQL外键?

时间:2013-01-29 12:36:04

标签: mysql

我有两个mysql表,约会和用户...我的想法是当用户登录并预约将该约会存储在他的用户配置文件中,以便他可以在以后取消该特定约会,所以我说我有两个具有名为id的主键的表...如何在用户配置文件中显示约会?因为我已经使用alter table在用户表中添加了外键约会_id这两个表,查询进行得很顺利但没有改变...我是有点新的,所以任何帮助将不胜感激...

我很抱歉没有张贴桌子,我很新...这里他们是......这实际上不是我的代码,它的joomla组件代码,现在我说当用户登录并预约我想要用户能够转到他的用户档案并看到他所做的所有约会,也许这可以通过其他方式完成,但我的想法是在表格中使用外键...

USERS

CREATE TABLE `jos_users` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `name` varchar(255) NOT NULL DEFAULT '',
 `username` varchar(150) NOT NULL DEFAULT '',
 `email` varchar(100) NOT NULL DEFAULT '',
 `password` varchar(100) NOT NULL DEFAULT '',
 `usertype` varchar(25) NOT NULL DEFAULT '',
 `block` tinyint(4) NOT NULL DEFAULT '0',
 `sendEmail` tinyint(4) DEFAULT '0',
 `registerDate` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
 `lastvisitDate` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
 `activation` varchar(100) NOT NULL DEFAULT '',
 `params` text NOT NULL,
 `lastResetTime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT 'Date of last password reset',
 `resetCount` int(11) NOT NULL DEFAULT '0' COMMENT 'Count of password resets since lastResetTime',
 `fk_appointments` int(11) NOT NULL,
 PRIMARY KEY (`id`),
 KEY `usertype` (`usertype`),
 KEY `idx_name` (`name`),
 KEY `idx_block` (`block`),
 KEY `username` (`username`),
 KEY `email` (`email`)
) ENGINE=MyISAM AUTO_INCREMENT=574 DEFAULT CHARSET=utf8

APPOINTMENTS

CREATE TABLE `jos_jxtc_appbook_appointments` (
 `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
 `checked_out` int(11) NOT NULL,
 `checked_out_time` datetime NOT NULL,
 `ordering` int(11) NOT NULL,
 `published` tinyint(4) NOT NULL,
 `parent_id` int(11) NOT NULL,
 `user_id` int(11) NOT NULL,
 `title` varchar(255) NOT NULL,
 `email` tinytext NOT NULL,
 `date` date NOT NULL,
 `duration` time NOT NULL,
 `start` time NOT NULL,
 `end` time NOT NULL,
 `field1` text NOT NULL,
 `field2` text NOT NULL,
 `field3` text NOT NULL,
 `field4` text NOT NULL,
 `field5` text NOT NULL,
 `field6` text NOT NULL,
 `field7` text NOT NULL,
 `field8` text NOT NULL,
 `field9` text NOT NULL,
 `field10` text NOT NULL,
 PRIMARY KEY (`id`),
 KEY `parent_id` (`parent_id`),
 KEY `user_id` (`user_id`)
) ENGINE=MyISAM AUTO_INCREMENT=309 DEFAULT CHARSET=utf8

3 个答案:

答案 0 :(得分:0)

类似的东西:

select * from appointments where user.id=appointment.id;

答案 1 :(得分:0)

您必须使用联接:

select * from users u, appointments a where u.appointment_id=a.id

答案 2 :(得分:0)

最终我在我的表userident-int中创建了一个新值,在表单内部我创建了一个新输入,用于存储提交该表单的用户的id ...

<input type="hidden" name="userident" ide="userident" value="<?php $user =& JFactory::getUser(); echo $user->id; ?>"