0
好,所以我有一個查詢內置的子查詢。但是我希望僅在子查詢表(shop_stock)中實際存在行時纔會發生這種情況。子查詢僅當它包含行時
SELECT id
FROM item
WHERE restocks_at = ?
AND rarity > ?
AND rarity < ?
AND price > 0
AND amount < (SELECT COUNT(id)
FROM shop_stock
WHERE item_id = item.id
AND shop_id = ?)
ORDER BY rand()
LIMIT 1
我想在項目表中的金額欄僅低於表中(shop_stock)與項目ID行,如果它實際上包含所有行。因爲它沒有行開頭,它甚至不會從查詢中提取任何內容。 但是我循環了一個我想插入多少物品的循環,並且在開始時,它在該表中沒有任何內容(shop_stock)。
如果它永遠不會將該ID插入該表中,則該查詢將永遠不會運行。所以我很困惑。我想基本上統計項目ID,以及它在子查詢中出現的次數,如果它甚至在表中。
總而言之,每個項目都有一個金額(2-30),這意味着項目ID 21可能有5的數量意味着我只想要5個項目的最大值來補貨該項目。所以我試圖不要在兩個查詢中選擇一個項目,然後檢查它是否已經在shop_stock表中5次,如果不是,則將該項目插入shop_stock。
請問您是否可以澄清此問題?嘗試用您正在討論的表名替換所有「表格」部分。更好的是;對於你提到的每一列都使用表格。 例如item.amount –
brimble2010
2013-03-15 16:43:18