i have table
(id1,id2)
1.row [1,2]
2.row [2,1]
3.row [3,4]
4.row [4,3]
5.row [5,6]
6.row [6,5]

i want to get result:

1.row [1,2]
3.row [3,4]
5.row [5,6]

or

2.row [2,1]
4.row [4,3]
6.row [6,5]

i try anithing, (but not temporarry table), to eliminate cross data, but ... , can you help please, how i get my result?

Rado, thanx very much.

Recommended Answers

All 5 Replies

It's Not Too Clear What You Want.

1. A Query That Gives You Rows Where id1<id2 ?

2. A Query That Gives You Rows Where id2<id1 ?

You Mentioned Temporary Tables, So Either You're Making Things Too Complicated Or I'm Completely Missing The Point !

select distinct case when id1<id2 then id1 else id2 end, case when id1<id2 then id2 else id1 end from tablename

select t1.*
from theTable t1 join theTable t2
on t1.id2 = t2.id1 and t1.id1 < t2.id1

select t1.*
from theTable t1 join theTable t2
on t1.id2 = t2.id1 and t1.id1 < t2.id1

I don't have time to test this, but i don't think that this will work. This won't show any id1's that don't have a matching id2 or any id2's that don't have a matching one

It probably wouldn't. It would give them only

i want to get result:

1.row [1,2]
3.row [3,4]
5.row [5,6]

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.