чет вообще не понял причем тут внешние ключи и 3-я таблица order_product, которую вы указали как решение.
1. Мне надо рядом с каждім заказом вівести названия товаров - из таблицы order_items
- если одним запросом
SELECT
*, GROUP_CONCAT(order_items.`name`) AS `names`
FROM order_items
INNER JOIN orders
ON order_items.order_id = orders.id
2. Третья таблица order_product с полями id заказа, и id товара - обычно делают для связи многие ко многим у вас что товар может иметь принадлежность к нескольким заказам?
3. Внешние ключи как правило используют для целостности данных, например вы не сможете удалить заказ если у него есть товары, хотя можно использовать каскадное удаление