आप यह कैसे कर सकते हैं
select @rn:[email protected]+1 as id,colors from (
(select @rn1:= @rn1+1 as rn,colors from table1,(select @rn1:=0)x order by id )
union all
(select @rn2:= @rn2+1 as rn,numbers as colors from table2,(select @rn2:=0.5)x order by id)
union all
(select @rn3:= @rn3+1 as rn,names as colors from table3,(select @rn3:=0.6)x order by id )
)x,(select @rn:=0)y order by rn ;
विचार एक rn
असाइन करने का है प्रत्येक तालिका आइटम के लिए मूल्य और यह सुनिश्चित करने की आवश्यकता है कि ये मान हमेशा आरोही क्रम में हों
इसलिए यदि आप प्रत्येक तालिका के लिए क्वेरी चलाते हैं तो आपके पास
mysql> select @rn1:= @rn1+1 as rn,colors from table1,(select @rn1:=0)x order by id;
+------+--------+
| rn | colors |
+------+--------+
| 1 | red |
| 2 | green |
| 3 | blue |
| 4 | yellow |
+------+--------+
4 rows in set (0.00 sec)
mysql> select @rn2:= @rn2+1 as rn,numbers as colors from table2,(select @rn2:=0.5)x order by id;
+------+--------+
| rn | colors |
+------+--------+
| 1.5 | ten |
| 2.5 | two |
| 3.5 | one |
| 4.5 | three |
| 5.5 | six |
| 6.5 | five |
+------+--------+
6 rows in set (0.00 sec)
mysql> select @rn3:= @rn3+1 as rn,names as colors from table3,(select @rn3:=0.6)x order by id;
+------+--------+
| rn | colors |
+------+--------+
| 1.6 | jack |
| 2.6 | peter |
+------+--------+
2 rows in set (0.00 sec)
यहां आप table1 rn
देख सकते हैं मान हैं 1,2,3,....
table2
मान हैं 1.5,2.5,3.5,....
table3
मान हैं 1.6,2.6,....
तो अंत में जब आप परिणाम को सभी rn के साथ ऑर्डर करेंगे तो यह इस प्रकार होगा
1,1.5,1.6,2,2.5,2.6,....