MySQL中的连接表

(Sorry, my english isn't very good) Hi, I am trying to learn how to work with junction tables in MySQL and I can't figure how to do something. I know the basics of MySQL but I have never worked with "JOIN".

In this test project, I would like to be able to show on a page the app of a given category (you click on "Games", only the apps that are in the "Games" category will be displayed on the page). I would like to know what the SQL request should look like.

Second question, let's say that an App could fit 2 different categories, how can I manage to give that app 2 different Category_ID in my database ?

Here is what my Database looks like at the moment :

Table name: APPS

+------------+-------------------+
| App_ID (pk)|     App_Name      | 
+------------+-------------------+
|    1       |  Weather Network  |                  
|    2       |  Is it sunny 2.0  |                          
|    3       |  The Weather App  |
|    4       |  Zelda            |
|    5       |  Megaman          |
|    6       |  Doom 3           |                                
+------------+-------------------+

Table name : CATEGORY

+-----------------+-----------------+
| Category_ID (pk)|  Category_Name  | 
+-----------------+-----------------+
|     1           |     Games       |                  
|     2           |     Weather     |                                                      
+-----------------+-----------------+

Table name : JUNCTION_APP_CATEGORY

+----------------+--------------------+
|    APP_ID (pk) |   Category_ID (pk) | 
+----------------+--------------------+
|      1         |        2           |                  
|      2         |        2           |
|      3         |        2           |                  
|      4         |        1           |
|      5         |        1           |                  
|      6         |        1           |                                                      
+----------------+--------------------+

For your first question, the answer is

SELECT a.*, c.*
FROM APPS a, CATEGORY c, JUNCTION_APP_CATEGORY ac
WHERE a.App_ID=ac.APP_ID
  AND c.Category_ID=ac.Category_ID
  AND ac.Category_ID=<category_id for category "Games">

For your second question, you can use both APP_ID and Categor_ID as the primary key of table JUNCTION_APP_CATEGORY(note NOT TWO pks, but use the two columns together as ONE pk). So that you can put data like this:

+----------------+--------------------+
|    APP_ID (pk) |   Category_ID (pk) | 
+----------------+--------------------+
|      1         |        1           |        <-- APP_ID=1 belongs to both cat 1 & 2          
|      1         |        2           |                  
|      2         |        2           |
|      3         |        2           |                  
|      4         |        1           |
|      5         |        1           |                  
|      6         |        1           |                                                      
+----------------+--------------------+