开发者

Condition based on column in data

There are two tables, the first contain data and the second meta data for the first based on category.

table1 
id, category1, category2, custom1, custom2, custom3...

table2 
category1, category2, de开发者_如何学Pythonnom, field

Example:

table1
AAAAA, Car, Compact, Red, Automatic, 150bhp

table2
Car, Compact, Color, custom1

The 'field' column in table2 points to which field in table1 we have meta data for.

Now what I am looking to do is to somehow use the value of the 'field' column in an sql as the column.

select * from table1
where table1.category1 = 'Car'
  and table1.category2 = 'Compact'
  and table1.category1 = table2.category1
  and table1.category2 = table2.category2
  and table2.denom = 'Color'
  and table1.(value of table2.field) = 'Red'

Is this possible to do in a single sql statement?


It is possible if you know the number of "custom" columns in advance.

you can replace

and table1.(value of table2.field) = 'Red'

with

and    case table2.field
         when 'custom1' then table1.custom1
         when 'custom2' then table1.custom2
         when 'custom3' then table1.custom2
         ...
         else NULL
       end
       = 'Red'
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜