2015-08-15 63 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

這工作謝謝你 –