Counting number of total results for each column name
By JOINing to order_items that query returns one line for each row in the order_items table. The COUNT is therefore counting rows from order_items, not from table orders. This is why you think you are over counting.

Solutions would be to remove the joins to tables which are not referenced directly in the resultset, or to use the SELECT COUNT(DISTINCT ..) syntax.