gpt4 book ai didi

mysql - 从两个不同的表中选择数据同时覆盖不同的记录时获取重复值

转载 作者:行者123 更新时间:2023-11-29 09:30:56 25 4
gpt4 key购买 nike

我目前正在解决这个问题。我被要求找出哪位医生没有治疗过患者 #3249。我已经想出了如何达到这样的程度:我可以只提取没有治疗患者的医生的 doctor_id 。我的问题是,当我尝试从不同的表中提取医生的姓名时,不仅 doctor_id 重复,而且医生的姓名也会被其他医生的姓名替换。

以下是我创建和链接表格的方法:

CREATE TABLE pt_treatment (     patient_no NUMBER(4),   physician_id NUMBER(4),     item_code NUMBER(3),    num_times_serviced NUMBER(3), 
CONSTRAINT pt_treatment_pk PRIMARY KEY (patient_no, physician_id, item_code),
CONSTRAINT pt_treatement_patient_no_fk FOREIGN KEY (patient_no) REFERENCES patient (patient_no),
CONSTRAINT pt_treatment_physician_id_fk FOREIGN KEY (physician_id) REFERENCES doctor (physician_id),
CONSTRAINT pt_treatment_item_code_fk FOREIGN KEY (item_code) REFERENCES item (item_code));

还有医生 table

CREATE TABLE doctor (
physician_id NUMBER(4),
doctor_name VARCHAR2(30),
doctor_phone VARCHAR2(12),
CONSTRAINT doctor_physician_id_PK PRIMARY KEY (physician_id))

;

这是我选择数据的声明:

SELECT distinct pt.physician_id, d.doctor_name
FROM pt_treatment pt, doctor d
WHERE pt.physician_id NOT IN (select physician_id FROM pt_treatment WHERE patient_no = 3249);

这显示了我在 mySQL 中的输出:enter image description here第一部分显示了我的医生表以及两位医生如何使用不同的 ID 排列第二部分显示 pt_treatment 表输出;请注意,与患者编号 3249 一致的唯一 doctor_id 是 4321。最后,最后一位显示了我的输出以及 doctor_id 如何与两位医生的姓名一起打印两次。

提前致谢!

最佳答案

这个怎么样?

SELECT distinct d.physician_id, d.doctor_name, pt.patient_no
FROM doctor d
LEFT JOIN pt_treatment pt ON d.physician_id = pt.physician_id and pt.patient_no=3249
WHERE pt.patient_no IS NULL
/*THE doctors who have not treated patient 3249 will have patient_id null*/

关于mysql - 从两个不同的表中选择数据同时覆盖不同的记录时获取重复值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58760452/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com