我有四张桌子:
products sizes
----------------------------- -----------------------------------
| product_id | product_name | | pizza_size_id | pizza_size_name |
----------------------------- -----------------------------------
| 39 | Italyan | | 1 | Small |
| 40 | Classic | | 2 | Medium |
| 41 | Lamb | | 3 | Large |
| 42 | Evi | -----------------------------------
-----------------------------
menu_details
--------------------------------------------------------
| id | order_details_fk | pizza_menus_fk | products_fk |
--------------------------------------------------------
| 17 | 132 | 92 | 39 |
| 18 | 132 | 92 | 40 |
| 19 | 132 | 92 | 41 |
| 20 | 132 | 92 | 42 |
--------------------------------------------------------
pizza_menus
--------------------------
| id | menu_id | size_id |
--------------------------
| 25 | 92 | 1 |
| 26 | 92 | 1 |
| 27 | 92 | 1 |
| 28 | 92 | 2 |
--------------------------
这是我的SQL代码:
SELECT DISTINCT products.product_name, sizes.pizza_size_name
FROM products, menu_details, pizza_menus, sizes
WHERE products.product_id = menu_details.products_fk
AND menu_details.pizza_menus_fk = pizza_menus.menu_id
AND pizza_menus.size_id = sizes.pizza_size_id
AND menu_details.order_details_fk = 132
我想要的输出
----------------------------------
| product_name | pizza_size_name |
----------------------------------
| Italyan | Small |
| Classic | Small |
| Lamb | Small |
| Evi | Medium |
----------------------------------
我得到的输出
----------------------------------
| product_name | pizza_size_name |
----------------------------------
| Italyan | Small |
| Classic | Small |
| Lamb | Small |
| Evi | Small |
| Italyan | Medium |
| Classic | Medium |
| Lamb | Medium |
| Evi | Medium |
----------------------------------
我知道这么简单的问题有太多的表格,但无论如何 我非常感谢你的帮助,谢谢!
答案 0 :(得分:0)
menu_details
和pizza_menu
之间的关联错误,因此我将menu_details
标记为:
--------------------------------------------------------
| id | order_details_fk | pizza_menus_fk | products_fk |
--------------------------------------------------------
| 17 | 132 | 25 | 39 |
| 18 | 132 | 26 | 40 |
| 19 | 132 | 27 | 41 |
| 20 | 132 | 28 | 42 |
--------------------------------------------------------
这是我的新SQL:
SELECT DISTINCT products.product_name, sizes.pizza_size_name
FROM products, menu_details, pizza_menus, sizes
WHERE products.product_id = menu_details.products_fk
AND menu_details.pizza_menus_fk = pizza_menus.id
AND pizza_menus.size_id = sizes.pizza_size_id
AND menu_details.order_details_fk = 132