Вы наткнулись на неявное JOIN
, в то время как вы хотите UNION
SELECT * FROM countries
UNION
SELECT * states
Что делает ваш текущий запрос (SELECT * FROM countries, states
), так это: Для каждой строки в странах объедините данные из этой страны со всеми штатами.
Это будет означать, что если у вас есть 10 стран и 10 штатов, общее количество строк будет равно 100. Посчитайте, что вам повезло, что вы сделали декартово соединение для очень маленькой таблицы:)
Вы просто хотите сделать 2 запроса отдельно: попытка объединить результаты не так эффективна, как 2 отдельных.