如何在sql中显示来自2个不同表的行?

时间:2014-02-18 05:01:55

标签: mysql sql

我有两张不同的桌子..

Test1: with 1,2,3,4 as row elements upto 10.
Test2: with a,b,c,d as row elements upto j.

我希望通过单个查询显示结果,其中表中的每个偶数后跟前面的字母,省略奇数和其他字母。

就像这种情况一样,结果将是:2a, 4c, 6e, 8g, 10i. And 1,3,5,7,9 and b,d,f,h,j将不会显示。

我需要使用一个没有数字或字母的大表来完成这项工作。

2 个答案:

答案 0 :(得分:4)

它可能对你有帮助,它在sql server中,把它改成mysql

create table #alpha(alpha varchar(25))
insert #alpha values('a'),('b'),('c'),('d'),('e'),('f')

create table #Number(digits int)
insert #Number values(1),(2),(3),(4),(5),(6)

SELECT CAST(Number.digits as varchar(25))+''+Alphabets.alpha yourResult FROM
(SELECT ROW_NUMBER() over( order by digits asc) as id,digits from #Number ) Number
INNER JOIN (SELECT ROW_NUMBER() over( order by alpha asc) as id,alpha from #alpha ) Alphabets
ON Alphabets.id+1=Number.id
WHERE Number.digits%2=0

drop table #alpha  
drop table #Number

输出:

yourResult
2a
4c
6e

答案 1 :(得分:0)

让Test1有一列Number,Test2有一列Ch:

select * from Test1, Test2 where (Number%2=0) and char(95 + Number)=Ch

对于任意类型的行,它不清楚,因为在SQL行中实际上没有任何顺序。