我有兩個表:MySQL的 - 「子查詢返回多個1行」 錯誤
成分
| id | iName |
-----------------------------
| 101 | Curcumin |
| 102 | Riboflavin |
| 103 | Protease |
| 104 | Tartrazine |
| 105 | Amylase |
foodproduct_ingredient
| foodproduct_id | ingredient_id |
---------------------------------------
| 1 | 101 |
| 1 | 102 |
| 1 | 104 |
而我只是想獲取列表我爲每一種食物產品命名。 例如,當我想在INAME foodproducts.id = 1必須
| iName |
----------------------
| Curcumin |
| Riboflavin |
| Tartrazine |
我試圖插入查詢:
SELECT ingredients.iName FROM ingredients INNER JOIN foodproduct_ingredient
ON ingredients.id = foodproduct_ingredient.foodProduct_id
WHERE ingredients.id =
(SELECT foodproduct_ingredient.ingredient_id FROM foodproduct_ingredient INNER JOIN foodproducts
ON foodproducts.id = foodproduct_ingredient.foodProduct_id
WHERE foodproducts.id = 1)
但它返回子查詢返回多個1排
有人可以幫我嗎?謝謝:)
*注:有表foodproducts只是加入讓foodproducts的ID
使用'IN'而不是'='...或 – Hackerman
你顯著過於複雜的查詢,並有可能使用不正確的條件,您可以添加'LIMIT 1'你的子查詢,如'ingredients.id = foodproduct_ingredient.foodProduct_id'。另外,除非你想從「食品」中得到一些其他信息,你實際上並不需要引用該表;您已經聲明/暗示您擁有該表格中的編號。 _這應該是一個簡單的雙表連接,帶有單條件where子句;問問你自己想要的信息,它來自哪裏,以及你必須得到什麼信息._ – Uueerdo
@Uererdo是的,我也想引用食品產品的id,所以我加入這個表 –