Как выбрать две строки из второй таблицы для каждой строки в первой таблице в представлении mysql
Обновление
если у меня есть две таблицы (таблица элементов и таблица единиц измерения).
Таблица элементов выглядит так (st_items) :-
------------------------------------------------------- stitems_ID ------ stitems_Name ------------ other info... ------ 1 ------ item 1 ------------ .. ----------------- 2 ------ item 2 ------------ .. ----------------- 3 ------ item 3 ------------ .. ----------------- 4 ------ item 4 ------------ .. -----------------
таблица единиц измерения выглядит следующим образом (st_items_units) :-
------------------------------------------------------- id ------ stitems_ID ------------ stitemsu_UnitNum --- 1 ------ 1 ------------ 1 ------------------ 2 ------ 1 ------------ 10 ----------------- 3 ------ 1 ------------ 100 ---------------- 4 ------ 2 ------------ 1 ------------------ 5 ------ 2 ------------ 12 ----------------- 6 ------ 3 ------------ 1 ------------------ 8 ------ 4 ------------ 1 ------------------ 9 ------ 4 ------------ 12 ----------------- 9 ------ 4 ------------ 100 ----------------
в качестве таблицы каждый элемент может иметь только одну единицу, или 2 единицы, или 3 единицы, или более.
я хочу выбрать две самые маленькие единицы (или повторить только одну, если есть одна единица для элемента). как эта таблица :
------------------------------------------------------- stitems_ID ------ stitems_Name ------------ SmallUnit ------ LargeUnit ------ 1 ------ item 1 ------------ 1 -------------- 2 ------ 2 ------ item 2 ------------ 4 -------------- 5 ------ 3 ------ item 3 ------------ 6 -------------- 6 ------ 4 ------ item 4 ------------ 8 -------------- 9 ------
Что я уже пробовал:
я создал представление, чтобы выбрать маленькую единицу, а затем выбрать большую единицу, но мне много раз не удавалось достичь правильного решения
LEFT JOIN (SELECT lunit.stitems_ID, lunit.stitemsu_UnitName as LargeUnitID, lunit.stitemsu_PurchasesPrice, lunit.stitemsu_SalesPrice, lunit.stitemsu_UnitNum FROM st_items_units lunit where lunit.stitemsu_UnitNum > 1 GROUP BY lunit.stitems_ID,lunit.stitemsu_UnitName,lunit.stitemsu_PurchasesPrice,lunit.stitemsu_SalesPrice, lunit.stitemsu_UnitNum order by lunit.stitemsu_UnitNum asc limit 1) lunits ON lunits.stitems_ID = items.stitems_ID
конечно это неправильным кодом. но он просто пытался объяснить то, что я пытался.