我在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