I have a table
id | title | lng | vi_id
--------------------------------------------------------
1 | 'IX#001323' | 1 | 12
2 | 'IX#001323 heb' | 2 | 12
3 | 'IX#001544' | 1 | 22
4 | 'IX#001666' | 1 | 34
5 | 'IX#001666 heb' | 2 | 34
6 | 'IX#002100' | 1 | 55
7 | 'IX#002100 heb' | 2 | 55
8 | 'IX#002100 spa' | 3 | 55
I pass in a parameter @lng
For each vi_id
I need to get the row matching that lng value if it exists or default to the row with lng =1
if it doesn't.
for @lng = 2
id | title | lng | vi_id
--------------------------------------------------------
2 | 'IX#001323 heb' | 2 | 12
3 | 'IX#001544' | 1 | 22
5 | 'IX#001666 heb' | 2 | 34
7 | 'IX#002100 heb' | 2 | 55
for @lng = 3
id | title | lng | vi_id
--------------------------------------------------------
2 | 'IX#001323' | 1 | 12
3 | 'IX#001544' | 1 | 22
5 | 'IX#001666' | 1 | 34
8 | 'IX#002100 spa' | 3 | 55
i tried to do inner join with the same table but i get all rows with another column of the second lng
Best Answer
Here are a couple of approaches you can try.