从外键获取行值 MySQL

Get row values from foreign key MySQL

这听起来简单又愚蠢,但我怎样才能从 table 中获取 foreign 键的值并显示它呢?

我有一个名为“subjects”的 table,它包含不同的学校科目,其中一列是一个 foreign 键引用 table,名为“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”table中是否存在数据,然后继续显示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
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%'