Нашел пост очень симулированный пост, к которому я после.
как отсортировать порядок LEFT JOIN в запросе SQL? , но моя разбита по нескольким таблицам.
Accounts
acc_id | salesRank | reg_date
1 | 50 | 2018-01-01 07:01:01
2 | 20 | 2019-02-01 07:01:01
Catalogue
cat_id | product_name | brand
1 | torch | Dewalt
2 | MacBook | Apple
3 | Phone | Samsung
Inventory
inv_id | cat_id | acc_id | salePrice | stock
1 | 1 | 1 | 999 | 6
2 | 1 | 2 | 499 | 2
Вот что мне нужно далеко:
SELECT c.cat_id, c.product_name, c.brand, a.salePrice,
MATCH(c.product_name) AGAINST('+dewalt' IN BOOLEAN MODE) AS relevancy,
(a.salesRank + i.stock) AS sellersRankTotal
FROM catalogue AS c
JOIN inventory AS i ON c.cat_id = i.cat_id
JOIN accounts AS a ON i.acc_id = a.acc_id
WHERE ... GROUP BY c.cat_id ORDER BY relevancy DESC
Я знаю, как получить MAX () sellersRank из двух значений в двух таблицах вместе взятых.
Результаты, которые я получаю после того, как продавец с самым высоким рейтингом (salesrank + акции) получают цену, показанную в результатах поиска.
product_name | brand | acc_id | cat_id | price | sellersRankTotal
torch | Dewalt | 1 | 1 | 999 | 56 (SalesRank + Stock)
Я могу только предположить, что у Amazon аналогичная концепция.
Указанные цены не всегда самые дешевые, но продавцы со степенью ранжирования указывают цены в своих списках.
Надеюсь, это имеет смысл,
Привет