Table A Table B
id type_id amount id type_id amount 1 2 5000 1 4 2000 2 4 2000 2 2 3000 3 2 2000Теперь я собираюсь оставить таблицу A в таблице B
SELECT a.amount, b.amount
FROM tableA a
left JOIN tableB b on b.type_id=a.type_id
amount amount 5000 2000 2000 3000 5000 2000 --------------------------------------------------------
amount amount 5000 2000 2000 3000 NULL 2000 --------------------------------------------------------
Left join, принимает все элементы из левой таблицы и совпадения с правой таблицы. Результат будет нулевым для элементов с правой стороны, если совпадения не найдены.
Поэтому попробуйте заменить LEFT JOIN правой рукой.
SELECT a.amount, b.amount FROM tableA a right JOIN tableB b на b.type_id = a.type_id
Я попробовал несколько вариантов, и я думаю, что нашел лучшее решение! Попробуйте этот запрос:
выберите a.amount, b.amount из таблицы 1 правое соединение table2 b на b.id = (выберите id из таблицы2 b2, где b2.type_id = предел a.type_id 1)
Надеюсь, он работает сейчас.