diff --git a/inputs/modify_tables.sh b/inputs/modify_tables.sh
new file mode 100755
index 0000000000000000000000000000000000000000..ac437459fcdca5ec50b7eddfa9f6656f450c9a47
--- /dev/null
+++ b/inputs/modify_tables.sh
@@ -0,0 +1,9 @@
+#!/bin/bash
+
+# Assign parameters to variables
+HOST=$1
+USER=$2
+PASSWORD=$3
+
+echo "*** Fix tables to include states and countries data and to be indexed on them:"
+mariadb -h "$HOST" -u "$USER" -p"$PASSWORD"  < inputs/sql/modify_tables_for_state_country.sql
diff --git a/inputs/sql/modify_tables_for_state_country.sql b/inputs/sql/modify_tables_for_state_country.sql
new file mode 100644
index 0000000000000000000000000000000000000000..8d93b757fc6b894720afac2cb1bea3d77e80c5a9
--- /dev/null
+++ b/inputs/sql/modify_tables_for_state_country.sql
@@ -0,0 +1,19 @@
+-- US data
+-- add index to LODES8 table, query already optimized
+ALTER TABLE LODES8
+ADD INDEX idx_geoid (GeoID);
+-- no need to modify QCEW because there is agg level already to select geographical layer
+
+-- EU data
+-- LFS at the country level only
+-- SBS at the country level only
+
+-- Step 1: Add the country column to the table
+ALTER TABLE REA
+ADD COLUMN eu_country CHAR(2);
+-- Step 2: Add the new column to the table index
+ALTER TABLE REA
+ADD INDEX idx_eu_country (eu_country);
+-- Step 3: Update the country column based on the cntr_code column
+UPDATE REA
+SET eu_country = LEFT(GeoID, 2);
diff --git a/prepare_database.sh b/prepare_database.sh
index 40fe907977472449ced45146bd010ed1555f16e0..64d1b49beae0d9fa54c2b83091468b428d757f62 100755
--- a/prepare_database.sh
+++ b/prepare_database.sh
@@ -45,5 +45,8 @@ PASSWORD=$3
 ./inputs/load_eurostat_lfs.sh "$HOST" "$USER" "$PASSWORD"
 ./inputs/load_eurostat_sbs.sh "$HOST" "$USER" "$PASSWORD"
 
+# modify tables to include states and countries data and to be indexed on them
+./inputs/modify_tables.sh "$HOST" "$USER" "$PASSWORD"
+
 # dump data and drop database on 'local' instance
 ./inputs/dump_and_drop.sh "$HOST" "$USER" "$PASSWORD"