Я запустил ваши тестовые данные и запустил ваш скрипт против них.Как я уже говорил в своем комментарии, проблема заключается в INNER JOIN
, который вы используете.
Я не уверен, знаете ли вы, но при использовании INNER JOIN
, если объединенная таблица равна NULL длятекущая строка, затем вообще ничего не будет возвращено .
Если вы измените свой запрос на использование LEFT JOIN
, вы увидите результаты, которые доступны независимо от того, являются ли объединенные таблицыNULL или иначе:
SELECT items.id, items.name, items_buy.item_cost AS item_cost, items_sales.item_price AS item_price, CONCAT(trader.name, planet.name) AS name_point
FROM ((((items
LEFT JOIN items_buy ON items_buy.id = items.id)
LEFT JOIN trader ON trader.id = items_buy.name_point)
LEFT JOIN items_sales ON items_sales.id = items.id)
LEFT JOIN planet ON planet.id = trader.planet)
WHERE items.id = 1;
Это приводит к:
1 Agricium 24.45 25.6 NULL
1 Agricium 24.6 25.6 NULL
Проблема в вашем примере состоит в том, что соединение с trader
или planet
не имеет результата и, следовательно,не производит вывод.