食べ物に関する情報を取得しようとしているとしましょう。次に、すべての情報に加えて、その食品のすべての材料を表示する必要があります。
私のクエリでは、すべての情報を配列で取得していますが、最初の材料のみを取得しています...
myFoodsArr =
[0]
foodDescription = "the description text will be here"
ratingAverage = 0
foodId = 4
ingredient = 1
ingAmount = 2
foodName = "Awesome Food name"
typeOfFood = 6
votes = 0
このようなものを取り戻したいのですが...
myFoodsArr =
[0]
foodDescription = "the description text will be here"
ratingAverage = 0
foodId = 4
ingArr = {ingredient: 1, ingAmount: 4}, {ingredient: 3, ingAmount: 2}, {ingredient: 5, ingAmount: 1}
foodName = "Awesome Food name"
typeOfFood = 6
votes = 0
これは、現在使用しているクエリです。これを調整して食品ID4を返し、その食品のすべての材料を取得するにはどうすればよいですか?同時に、その食品の平均評価を取得するなどの他のことをしていますか?
ありがとう!
SELECT a.foodId, a.foodName, a.foodDescription, a.typeOfFood, c.ingredient, c.ingAmount, AVG(b.foodRating) AS ratingAverage, COUNT(b.foodId) as tvotes
FROM `foods` a
LEFT JOIN `foods_ratings` b
ON a.foodId = b.foodId
LEFT JOIN `foods_ing` c
ON a.foodId=c.foodId
WHERE a.foodId=4
編集:
Catcallは、私が聞いたことのない「サブクエリ」のこの概念を導入したので、1つのクエリでこれを簡単に実行できるかどうかを確認するためにそれを機能させようとしています。しかし、私はただreturnfalseを取得し続けます。これは私が運が悪かったのです。
//I changed some of the column names to help them be more distinct in this example
SELECT a.foodId, a.foodName, a.foodDescription, a.typeOfFood, AVG(b.foodRating) AS ratingAverage, COUNT(b.foodId) as tvotes
FROM foods a
LEFT JOIN foods_ratings b ON a.foodId = b.foodId
LEFT JOIN (SELECT fId, ingredientId, ingAmount
FROM foods_ing
WHERE fId = 4
GROUP BY fId) c ON a.foodId = c.fId
WHERE a.foodId = 4";
解決策としてROLANDSGROUP_CONCAT/JSONアイデアに関連するもう1つのことを編集します4これ
Flashプロジェクトに送り返すJSON文字列が適切に解析される準備ができていることを確認しようとしていInvalid JSON parse input.
ます。ポップアップが表示され続けます。
ですから、適切な場所にすべての二重引用符を適切に配置する必要があると考えています。
しかし、私のMySQLクエリ文字列では、二重引用符をエスケープしようとしていますが、mySQL変数が機能しなくなります。たとえば...
私がこれをするなら..
GROUP_CONCAT('{\"ingredient\":', \"c.ingredient\", ',\"ingAmount\":', \"c.ingAmount\", '}')`
私はこれを手に入れます...
{"ingredient":c.ingredient,"ingAmount":c.ingAmount},{"ingredient":c.ingredient,"ingAmount":c.ingAmount},{"ingredient":c.ingredient,"ingAmount":c.ingAmount}
すべての二重引用符を使用して、mysqlを壊さずにJSONを適切に形成するにはどうすればよいですか?