我有两张表menudetails
和meals
。 menudetails
表格如下:
id | menu_id | meal_id |
1 | 9 | 15 |
2 | 9 | 16 |
和meals
表格如下:
meal_id | name |
15 | hamburger |
16 | pizza |
我有$menu_id=9
。我想要name
和meal_id
menu_id=9
。我试过了:
$query = "SELECT meals.meal_id, meals.name".
"FROM menudetails, meals ".
"WHEREmenudetails.menu_id = '$menu_id'";
但没有奏效。有什么想法吗?
答案 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