Как выбрать элементы столбца таблицы из таблицы с соответствующим идентификатором в таблице, на которую ссылаются - PullRequest
0 голосов
/ 28 декабря 2018

У меня есть две таблицы:

select * from patient WHERE name = 'Dharam';
+----+--------+----------+---------------+-----+--------+
| id | name   | townCity | contactnumber | age | gender |
+----+--------+----------+---------------+-----+--------+
|  5 | Dharam | sdfgsgfs | 252232        |   6 | Male   |
|  6 | Dharam | sdfgsgfs | 252232        |   6 | Male   |
| 12 | Dharam | sadasda  | 213214124     |   2 | Female |
+----+--------+----------+---------------+-----+--------+

и вторая таблица Относительная;

+----+------------+----------+--------------+
| id | patient_id | relation | relativeName |
+----+------------+----------+--------------+
|  5 |          5 | Son      | Gyan         |
+----+------------+----------+--------------+
|  6 |          6 | Son      | Gyan         |
+----+------------+----------+--------------+
| 12 |         12 | Wife     | Suvidha      |
+----+------------+----------+--------------+

Я хочу получить список относительных имен, чьи идентификаторы пациентов совпадают с идентификаторами родственников, используяподход peewee

Я пытался создать соединение следующим образом:

select id, name from patient INNER JOIN  relative ON 
(patient.id == relative.id) WHERE patient.name = 'Dharam';

, но выдает ошибку, говоря:

 MariaDB server version for the right syntax to use
 near '= relative.id) WHERE patient.name = 'Dharam'' at line 1

Я понял это:

 query = (Relative.select(Relative.relativeName, Patient.id).join(Patient).where(Patient.id == Relative.id))
>>> 
>>> for item in query: print item.relativeName

но он возвращает все относительные имена, а не совпадающие с идентификаторами.

1 Ответ

0 голосов
/ 28 декабря 2018

разобрался:

>>> query = (Relative.select(Relative.relativeName).join(Patient).where(Patient.name == 'Dharam'))
>>> for item in query: print item.relativeName
...