我正在上班,我遇到了障碍。这是我正在使用的代码:
some_array.transpose.yield_self { |*a, b| a.flatten.uniq << b }
#=> ["FANUC CORP", "100048", [9, 26, 23, 111]]
我得到的结果是:(只截断我关注的列)
SELECT ANIM_ID, ANIM_NAME, FOOD_ITEM_ID, FOOD_ITEM_DESCRIPTION, FOOD_CATEGORY_DESCRIPTION, FOOD_PRICE
FROM ANIMAL
JOIN ANIMAL_DIETARY_REQUIREMENTS USING (ANIM_ID)
JOIN FOOD_ITEM USING (FOOD_ITEM_ID)
JOIN FOOD_CATEGORY USING (FOOD_CATEGORY_ID)
JOIN FOOD_ITEM_SUPPLIER USING (FOOD_ITEM_ID)
WHERE ANIM_NAME = 'Brianna' OR ANIM_NAME = 'Isaiah'
AND FOOD_PRICE IN
(SELECT MIN(FOOD_PRICE)
FROM FOOD_ITEM_SUPPLIER
GROUP BY FOOD_ITEM_ID);
"ANIM_NAME""FOOD_ITEM_ID""FOOD_ITEM_DESCRIPTION""FOOD_PRICE"
"Brianna" "121" "Super Mixed Seafood ""241.99"
"Brianna" "4" "Tasty Meat with Antioxi""384.76"
"Brianna" "4" "Tasty Meat with Antioxi""297.73"
"Isaiah" "9" "Nutritious Chicken" ""51.97"
"Brianna" "4" "Tasty Meat with Antioxi""48.4"
我得到了Brianna和美味肉的所有价格,而不仅仅是最低价。我只需要粗体的行。我一整天都在这里,我无法看到答案,我确信这是一个简单的代码,我只是缺少。这是我的第一个数据库类,也是我第一次使用SQL编写代码。这也是我的第一篇文章,所以如果我发错了,我会道歉。感谢你们给我的任何帮助或反馈。
答案 0 :(得分:0)
首先,您需要围绕动物名称选择括号。事实上,你问过Brianna的所有价格,或Isaiah的所有价格,这些都是最低价格,这正是你得到的。
其次,您需要比较给定FOOD_ITEM_ID的最低价格,如:
SELECT ANIM_ID,
ANIM_NAME,
FOOD_ITEM_ID,
FOOD_ITEM_DESCRIPTION,
FOOD_CATEGORY_DESCRIPTION,
FOOD_PRICE
FROM ANIMAL
INNER JOIN ANIMAL_DIETARY_REQUIREMENTS
USING (ANIM_ID)
INNER JOIN FOOD_ITEM
USING (FOOD_ITEM_ID)
INNER JOIN FOOD_CATEGORY
USING (FOOD_CATEGORY_ID)
INNER JOIN FOOD_ITEM_SUPPLIER
USING (FOOD_ITEM_ID)
WHERE (ANIM_NAME = 'Brianna' OR
ANIM_NAME = 'Isaiah') AND
(FOOD_ITEM_ID, FOOD_PRICE) IN (SELECT FOOD_ITEM_ID, MIN(FOOD_PRICE)
FROM FOOD_ITEM_SUPPLIER
GROUP BY FOOD_ITEM_ID);
您也可以用
替换OR动物名称选择ANIM_NAME IN ('Brianna', 'Isaiah')
这将更短,并消除没有括号的歧义。
答案 1 :(得分:0)
您是否适合使用OR
声明周围的括号进行隔离,并将FOOD_ITEM_ID
与FOOD_PRICE
一起用于MINIMIUM
WHERE
价格的比较WHERE (ANIM_NAME = 'Brianna' OR ANIM_NAME = 'Isaiah')
AND (FOOD_ITEM_ID,FOOD_PRICE) IN
(SELECT FOOD_ITEM_ID,MIN(FOOD_PRICE)
FROM FOOD_ITEM_SUPPLIER
GROUP BY FOOD_ITEM_ID);
1}}子句:
db.getCollection('Store').find(
{ $text: { $search: "gaming mouse" } }, { score: { $meta: "textScore" } }
).sort( { score: { $meta: "textScore" } } )