从外键MySQL

时间:2015-08-15 10:45:40

标签: mysql foreign-keys multiple-tables

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

我有一个名为“subjects”的表格,其中包含不同的学校科目,其中一列是foreign密钥,引用名为“faculty”的表格。

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

1 个答案:

答案 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%'