Хотя вы, возможно, выбрали решение своего вопроса, тем не менее, ваш запрос действительно нечист.Исходная посылка SQL состоит в том, чтобы один раз идентифицировать отношения того, как таблица соотносится с заданными ключами, и применять любые дополнительные фильтры в where.Ваш запрос имел «ИЛИ» несколько раз.Вот более точная версия вашего запроса.Обратите внимание, что в предложении where есть ОДИН ключ «помощь», который вы искали, и единственное предложение AND для присоединения к таблицам ... Под запросом находятся остальные предложения AND, в которых у вас было так много элементов с LIKE '% 122%', которыеCOUNT (чего угодно) будет возвращать число.
SELECT
po.purchase_order_id,
po.sequence_id,
po.order_number,
v.name,
po.date,
COUNT( poi.purchase_order_id) item_count,
po.total_value,
po.status,
users.first
FROM
purchase_orders po,
vendors v,
purchase_order_items poi,
users
WHERE
po.aid = 'c4ca4238a0b923820dcc509a6f75849b'
AND po.vendor_id = v.vid
AND po.purchase_order_id = poi.purchase_order_id
AND po.created_by = users.uid
GROUP BY
po.purchase_order_id
ORDER BY
po.purchase_order_id
LIMIT
0, 1
Это я не понял, что вы искали, но в конечном итоге оказался ПОСЛЕ всех других предложений WHERE, которые у меня были выше ...Опять же, COUNT (poi.purchase_order_id), как "% 122%", я не думаю, что это применимо.Вероятно, другие столбцы на основе «идентификаторов», которые я бы предположил, основаны на числах.
AND po.purchase_order_id LIKE '%122%'
AND po.sequence_id LIKE '%122%'
AND po.order_number LIKE '%122%'
AND v.name LIKE '%122%'
AND po.date LIKE '%122%'
AND COUNT(poi.purchase_order_id) LIKE '%122%'
AND po.total_value LIKE '%122%'
AND po.status LIKE '%122%'
AND users.first LIKE '%122%'
Оказалось, что вы НАМЕРЕНЫ применять все условия соединения для каждого экземпляра, но это должно было быть сделано - для пояснения
where
( all first group of conditions )
OR ( all next group of conditions )
OR ( all next, etc )
Надеюсь, это поможет прояснить структуру запросов.