一些复杂的Mysql语句
程序员文章站
2022-04-29 15:14:19
...
很久没写过SQL了,还记得是第一份工作的时候,做增删改查,好好的练了下SQL。后来一直做些底层的工作SQL就没怎么写过了。
现在加入了一家创业公司,什么都要去接触下.有同事纠结于一些SQL的写法,我尝试着写下.顺便这里就记录下。这里主要基于MYSQL。
首先创建临时表以及插入临时数据
DROP TABLE IF EXISTS TMP_A; DROP TABLE IF EXISTS TMP_B; CREATE TEMPORARY TABLE TMP_A(C1 INT, C2 INT); CREATE TEMPORARY TABLE TMP_B(C1 INT, C2 INT); INSERT INTO TMP_A VALUE(1,1),(2,2),(3,3); INSERT INTO TMP_B VALUE(10,10),(20,20),(30,30);
1.Mysql中获取行号
SELECT @i:=@i+1 AS ROW_NUMBER, A.C1,A.C2 FROM TMP_A A,(SELECT @i:=0) FOO_A
里面的ROW_NUMBER就是行号了
2.获得多张表中的几列,并且这几张表没有映射字段,也就是说不能用传统的SELECT TMP_A.C1,TMP_A.C2,TMP_B,C1,TMP_B.C2 FROM TMP_A JOIN TMP_B ON TMP_A.XX=TMP_B.XX
这里还是利用以上的行号去做JOIN:
SELECT AA.ROW_NUMBER,AA.C1,AA.C2,BB.C1,BB.C2 FROM (SELECT @i:=@i+1 AS ROW_NUMBER, A.C1,A.C2 FROM TMP_A A,(SELECT @i:=0) FOO_A) AA INNER JOIN (SELECT @j:=@j+1 AS ROW_NUMBER, B.C1,B.C2 FROM TMP_B B,(SELECT @j:=0) FOO_B) BB ON AA.ROW_NUMBER = BB.ROW_NUMBER;
更多技术文章、感悟、分享、勾搭,请用微信扫描:
上一篇: mavne 打可执行jar包