Я сейчас использую запрос:
SELECT
q1.item AS q1item,q1.store AS q1store,q1.marion AS q1marion,
q1.carbondale AS q1carbondale,q2.marion AS q2marion,q2.carbondale AS q2carbondale
FROM jdgower_items q1
INNER JOIN jdgower_items q2 ON q1.item=q2.item
AND q1.store_id=q2.store_id AND DATE(q1.datetime) = DATE(NOW())
AND DATE(q2.datetime) = DATE(NOW() - INTERVAL 1 DAY)
WHERE q1.store_id='$the_main_store_id' OR q1.competitor_id='$the_main_store_id'
ORDER BY q1.item ASC,q1.competitor_id ASC,q1.store DESC,q1.store_id ASC
По сути, идея состоит в том, чтобы получить по одному предмету в ряду с сегодняшней ценой и вчерашней ценой ... вместе со всеми конкурентами, которых я отслеживаю, с их соответствующими ценами. Это дает мне именно то, что я хочу, пока я не добавлю нового конкурента ... если у этого конкурента нет записи на вчерашний день, ничего не возвращается для этого конкурента в цикле. Я почти уверен, что это как-то связано с INNER JOIN в строке «AND DATE (q2.datetime) = DATE (NOW () - INTERVAL 1 DAY)», но я не уверен, как это исправить. Заранее благодарю за любую помощь!