2010-11-01 50 views
1

我要加入两个表,以获得医生名称,而不是ID没有结果加入数据库?

SELECT Doctors.doct_name, 
     Shifts.shift_date, 
     Shifts.shift_day, 
     Shifts.shift_start, 
     Shifts.shift_end 
    FROM SHIFTS 
    JOIN Doctors ON Doctors.doct_id = Shifts.doct_id 

列显示,但没有任何结果,,没有任何数据库中的数据?

+1

检查'SHIFTS'表 - 我猜测是你没有任何'doct_id'值与'DOCTORS.doct_id'中的匹配。 – 2010-11-01 16:11:22

+1

这两个表中是否有任何数据? – dotariel 2010-11-01 16:11:52

回答

2

查询看起来确定。

尝试两个单独的查询,以验证基本数据:

select * from Doctors order by doct_id; 

select * from Shifts order by doct_id; 

看到,如果你可以手动发现的数据问题:

+1

+1为理智的答案。 OP应该做的第一步是弄清楚他/她有哪些数据。 – NotMe 2010-11-01 16:21:28

1

尝试LEFT JOIN

SELECT Doctors.doct_name,Shifts.shift_date,Shifts.shift_day,Shifts.shift_start,Shifts.shift_end 
    FROM SHIFTS 
    LEFT JOIN Doctors ON Doctors.doct_id = Shifts.doct_id 
+0

这将只显示SHIFT值 - 基于提供的信息,我希望'DOCTORS'引用全部为NULL。 – 2010-11-01 16:15:27

+0

我检查后还是有同样的问题? – Omneya 2010-11-01 16:16:29

+0

我的猜测是,至少强迫连接离开,会清楚地看到数据库中的数据,这将进一步帮助OP。 – 2010-11-01 16:16:38

0

尝试使用LEFT JOIN,并尝试使用WHERE子句与一个ID,以检查是否真的是有两个表中存在医生

SELECT Doctors.doct_name,Shifts.shift_date,Shifts.shift_day,Shifts.shift_start,Shifts.shift_end 

FROM转变 LEFT加入Doctors ON Doctors.doct_id = Shifts.doct_id

SELECT Doctors.doct_name,Shifts.shift_date,Shifts.shift_day,Shifts.shift_start,Shifts.shift_end 

FROM转变 LEFT JOIN医生开Doctors.doct_id = Shifts.doct_id WHERE Doctors.doct_id = [插入医生ID在这里 - doctors_id]