2015-08-15 84 views
0

这可能听起来很简单但很愚蠢,但是如何从表中获取foreign键的值并显示它?从外键获取行值MySQL

我有一个名为“subjects”的表,其中包含不同的学科,其中一列是来自名为“faculty”的表的foreign密钥。

TABLE subjects 
___________________________________ 
| sub_id | sub_faculty | sub_desc | 
| 1 |  2  | PHYSICS | 
| 2 |  3  | MATH | 
| 3 |  4  | HISTORY | 
|________|_____________|__________| 

TABLE faculty 
________________________ 
| fac_id | fac_name | 
| 2 | John  | 
| 3 | Mark  | 
| 4 | Johnny | 
|________|_____________| 

我首先要检查是否在“subject”表中存在的数据,然后继续上显示foreign key的行值。

我有这个不那么工作查询显示JOHNJOHNNY。我正在使用LIKE,因为它将用于系统的搜索功能,所以希望你能帮助我解决这个问题。

SELECT * 
FROM subject, faculty 
WHERE subject.sub_desc = 'PHYSICS' 
    AND subject.sub_year = '4' 
    AND faculty.fac_name LIKE '%JOHN%' 
GROUP BY faculty.fac_id 
+3

你怎么想达到什么目的?显示给定主题的教师信息? – chathux

+0

正确的是,我希望结果显示表主题中的行,而不是外键,而不是外键中的行值。 –

回答

1
SELECT * 
FROM subject s 
join faculty f 
    on s.sub_faculty = f.fac_id 
WHERE s.sub_desc = 'PHYSICS' 
    AND s.sub_year = '4' 
    AND f.fac_name LIKE '%JOHN%' 
+0

这工作谢谢你 –