このクエリがあります
SELECT itemID, locationParentID, locationID, categoryParentID, categoryID, itemTitle, itemDetails, itemAttributes, itemPictures, itemFeatured, itemSpotlight, itemAdded
FROM items
WHERE locationID NOT IN
(SELECT locationID
FROM sites_locations
WHERE siteID != 2) AND items.siteID IN('1,2') AND itemStatus = '1'
AND itemAdded > '1356048000'
正常に動作しますが、このクエリを実行すると失敗します
SELECT itemID, locationParentID, locationID, categoryParentID, categoryID,
itemTitle, itemDetails, itemAttributes, itemPictures, itemFeatured, itemSpotlight, itemAdded FROM items
WHERE locationID NOT IN
(SELECT locationID
FROM sites_locations WHERE siteID != 2)
AND categoryID NOT IN (SELECT categoryID FROM sites_categories
WHERE siteID != 2) AND items.siteID IN('1,2') AND itemStatus = '1'
AND itemAdded > '1356048000'
ここでの違いは、句を追加したことです
AND categoryID NOT IN(SELECT categoryID FROM sites_categories
WHERE siteID != ".$cfg['site']['siteID'].")
これがうまくいかない理由はありますか?
またはさらに良いのは、最適化に役立つ結合クエリです。
sites_categories のテーブル構造、データは
アイテムのテーブル構造、データは
sites_locations のテーブル構造
場所のテーブル構造、データは
前もって感謝します。