MySQL使用php连接两个表

时间:2014-05-31 08:25:46

标签: php mysql sql join

我有两张表menudetailsmealsmenudetails表格如下:

id | menu_id | meal_id |
1  |    9    |   15    |
2  |    9    |   16    |

meals表格如下:

meal_id |   name    | 
   15   | hamburger |  
   16   | pizza     |

我有$menu_id=9。我想要namemeal_id menu_id=9。我试过了:

$query = "SELECT meals.meal_id, meals.name".
         "FROM menudetails, meals ".
         "WHEREmenudetails.menu_id = '$menu_id'";

但没有奏效。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

您需要JOIN这些表并使用适当的空格。试试这个:

SELECT ml.*
FROM meals ml JOIN
     menudetails md on md.meal_id=ml.meal_id
WHERE md.menu_id='$menu_id'

SELECT ml.meal_id, ml.name
FROM menudetails md, meals ml
WHERE md.meal_id=ml.meal_id
  AND md.menu_id = '$menu_id'

<强>分析:

使用您的代码,我们将获得如下查询:

SELECT meals.meal_id, meals.nameFROM menudetails, meals WHEREmenudetails.menu_id = '$menu_id'

因此,在代码中使用适当的空格。

答案 1 :(得分:0)

尝试使用INNER JOIN

SELECT meals.meal_id,
       meals.name
FROM meals
INNER JOIN menudetails ON menudetails.meal_id=meals.meal_id
WHERE menudetails.menu_id = 9