Очевидно, что нужно перебрать значения в цикле.
Очевидно, что раз уж мы не можем перебирать отсутствующие значения, то нужно перебирать присутствующие значения, то есть перебираем вторую таблицу.
Таким образом, переформулируем:
вывести только те значения, которые есть во второй таблице, но при этом отсутствуют в первой.
spoilerlocal table1 = { [1] = "q", [2] = "p" }
local table2 = { [1] = "q", [2] = "p", [3] = "f"}
for k,v in pairs(table2) do
if not table1[k] then
print(v)
end
end
Если же соответствие ключей не учитывается, то решение будет чуть сложнее. Для больших таблиц лучше их переделать под новый формат, в котором ключами будут значения:
local table1_fixed = { q = true, p = true }
Далее можно будет проверять присутствие значения в первой таблице по ключу.