2014-02-18 4 views
-1

У меня есть две различных таблицы ..Как отображать строки из 2 разных таблиц в 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 не будет отображаться.

Мне нужно сделать это с помощью более крупной таблицы, в которой не будет номеров или алфавитов.

+3

http://ru.wikipedia.org/wiki/Join_%28SQL%29 –

ответ

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 
0

Пусть Test1 имеет номер столбца, Test2 имеет столбец Ch:

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

С произвольными строками типа это неясно, поскольку в SQL-строках нет никакого порядка на самом деле.

Смежные вопросы