Creo entender que te refieres a lo siguiente:
Que cuando insertes una nueva cita en la tabla de Citas, el campo de "citas" que contiene el idpaciente (citas. Idpaciente) tome el ID del paciente que la ha solicitado.
En este caso MySQL necesita que le suministres el IDPaciente, ya que no hay ninguna regla ni mecanismos preestablecidos que permitan saber qué paciente solicitó la cita.
Ejemplo:
(Antes que nada: para fecha te recomendaría el tipo DATE en lugar de VARCHAR, aunque podría suceder que no te interese hacer operaciones con las fechas (como ordenar cronológicamente o calcular plazos) y en cambio quieras permitir poner algo como "A convenir" en lugar de la fecha. En ese caso un VARCHAR será mejor.)
Supongamos una cita para el 20-03-2012 a las 15:00 horas, para el paciente Nro 14.
El SQL sería:
INSERT INTO citas (idcita, fecha, hora, idpaciente) VALUES (null,'2012-03-20','15:00','14');
El '14', que creo es lo que te interesa, debes averiguarlo de algún modo, hay varias maneras, desde pedir que se tipee el ID hasta permitir elegir entre nombres de pacientes, pero en la sentencia INSERT debes enviar el '14'. No hay reglas, ni procedimientos ni nada que permita a MySQL, en este caso, saber cuál es el paciente.
A modo de curiosidad teórica te puedo comentar un caso donde podría automatizarse: que en lugar del paciente fuera el médico el que quieres insertar su ID, y que hubiera un médico diferente cada día de la semana. En ese caso, teniendo una tabla indicando qué médico atiende cada día, es posible crear una consulta que automáticamente coloque el ID del médico, basándose en la fecha de la cita que estás insertando. Pero eso es porque hay "algo" preestablecido (días que atiende cada médico, en una tabla). Los pacientes son algo muy distinto, obviamente.
Si no he comprendido bien la pregunta, te pido que la reformules.