我在SQL表,我用這個說法來做出選擇:與id參數選擇在SQL
SELECT id, name, genre FROM table
現在genre
是ID(int)和我有表名爲流派,有我有:
id (int)
name (string)
什麼選擇會給我流派的名稱,而不是id。
我在SQL表,我用這個說法來做出選擇:與id參數選擇在SQL
SELECT id, name, genre FROM table
現在genre
是ID(int)和我有表名爲流派,有我有:
id (int)
name (string)
什麼選擇會給我流派的名稱,而不是id。
SELECT t.id, t.name, g.name
FROM table t
JOIN genres g ON t.genre = g.id
SELECT t.id, t.name, g.name
FROM table t, genres g
WHERE t.genre = g.id
這與[接受的答案](http://stackoverflow.com/a/10267007/578288)相同,但速度要慢得多。一般來說,'JOIN'比笛卡爾乘積和'WHERE'要快。至少,我在[數據庫系統類](https://www.cs.drexel.edu/~jsalvage/Winter2012/CS461/index.html)中瞭解到,但我不記得它背後的解釋。 – 2012-04-22 23:38:58
@ RoryO'Kane不,它沒有任何區別。請參閱:http://stackoverflow.com/questions/121631/inner-join-vs-where – user1135357 2012-04-23 13:31:22
你是對的。我問了我的教授這件事,他說他不是說那裏的「哪裏」比較慢。這只是爲了教學的目的,他希望我們避免使用'WHERE'語法,因爲它只能用於* inner *連接。他希望我們學習'INNER JOIN'的語法,以便稍後教會我們'OUTER JOIN','LEFT JOIN'等,它們的語法相同。 – 2012-05-11 01:01:09
您需要使用Join
select G.name
from table table1 T,Genres G
where T.genre = G.id;
你到底想幹什麼?你到目前爲止擁有什麼樣的SQL,以及給你帶來了什麼結果? – 2012-04-22 10:03:57
我很猶豫是否應該將我想象的內容作爲答案輸入。目前還不清楚你想問什麼。 – Lion 2012-04-22 10:08:20
噢,還有一些問題:你在查詢什麼數據庫?你用什麼代碼來執行查詢?你可以在數據庫控制檯上寫一個查詢,給你想要的結果嗎? – 2012-04-22 10:09:33