2014-03-31 130 views
0

选择我有这样的MySQL安装:如何从表条件的其他表

*words* table 
+----+-----------+ 
| id | word | 
+----+-----------+ 
| 1 | curse1 | 
| 2 | curse2 | 
| 3 | niceWord1 | 

*Category* table 
+----+-----------+ 
| id | name | 
+----+-----------+ 
| 1 | niceWords | 
| 2 | badWords | 

*link* table 
+----+--------+-------+ 
| id | wordID | catID | 
+----+-----------+----+ 
| 1 | 1 | 2 | 
| 2 | 2 | 2 | 
| 3 | 3 | 1 | 

我想使一个MySQL SELECT,我说我想用链接表中选择所有不好的话
所以我会得到这样的输出:

+----------+------------+---------------+ 
| words.id | words.word | Category.name | 
+----------+------------+---------------+ 
| 1  | curse1 | badWords | 
| 2  | curse2 | badWords | 

我想我需要使用JOIN某种,即时通讯在SQL不太好。

引擎收录与同:http://pastebin.com/ML684RRA

+2

是加盟,至少会尝试 –

+0

就像仅供参考它真的是皱着眉头,当你张贴在多个地方同样的问题上。一般你应该尝试一下,然后发布要求修复/帮助 –

回答

1
select words.id, words.word, Category.name 
from words 
join link on link.wordid = words.id 
join category on category.id = link.catid 
where category.name = 'badWords' 
1

只是通过相关ID的连接表,然后通过使用WHERE坏字ID = 2 ...我还添加别名到筛选出的好话表名,因为它是一个很好的做法。

SELECT 
    w.word, 
    c.name, 
    c.id 
FROM words w 
JOIN link l on l.wordID = w.id 
JOIN Category c on c.id = l.catID 
WHERE c.id = 2