Какая команда SQL требуется для решения следующей проблемы? - PullRequest
0 голосов
/ 31 марта 2019

Я пытаюсь отобразить все встречи для вошедшего в систему пользователя, используя его имя пользователя, которое связано с PatientNumber, которое связано с встречей.Просто интересно, какой SQL-оператор сможет это сделать?

Мои таблицы выглядят следующим образом:

Назначение

APNo    Weekstart   Day APTime  DNo PNo
   1    01-01-2019   M   9:00    1  1

Пациент

PNo  FIRSTNAME     LASTNAME  ADDRESS       username
 1     Joe            Bloggs  1 The Road    joe123

Пользователь

id    username   password
 1      joe123    *hashedpassword*

Чуть больше контекста, это будет через php с использованием имени пользователя сеанса

Ответы [ 4 ]

1 голос
/ 31 марта 2019
SELECT * FROM Appointment A, Patient P WHERE A.PNo = P.PNo AND P.username = 'theUsernameOfYourUser';

И поскольку A.PNo и P.PNo имеют одинаковое имя столбца, вы можете даже использовать ЕСТЕСТВЕННОЕ СОЕДИНЕНИЕ (более короткий синтаксис):

SELECT * FROM Appointment NATURAL JOIN Patient WHERE username = 'theUsernameOfYourUser';
0 голосов
/ 31 марта 2019

Присоединяйтесь к таблицам и, возможно, примените фильтр к Weekstart:

select
  a.*, p.*
from appointment a inner join patient p
on p.pno = a.pno
where p.username = '$username'
and weekstart = ? -- you can remove this if you don't need it.
0 голосов
/ 31 марта 2019

попробуйте это утверждение:

SELECT Appointment.* ,temp.username FROM Appointment,
(SELECT PNo as Pno, username AS username FROM Patient,
User WHERE Patient.username=User.username) AS temp 
WHERE temp.Pno=Appointment.PNo;
0 голосов
/ 31 марта 2019

Пожалуйста, попробуйте ниже запрос в php

$username = $_SESSION['username'];

$sql = "Select u.username, p.FIRSTNAME, a.WeekStart, a.APTime From Patient p,User u,Appointment a
where p.username='$username' AND p.PNo = A.PNo"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...