我有一个成分翻译表这个表格(为简单起见,已删除了一些列,但结果仍然需要)
| id | name | ingredient_id | language |
| 1 | Water | 11 | en |
| 2 | Bell pepper | 12 | en |
| 3 | Sweet pepper | 12 | en |
我正在尝试构建一个查询来检索每种成分的一个单一成分翻译,如此(预期结果)
| id | name | ingredient_id |
| 1 | Water | 11 |
| 2 | Bell pepper | 12 |
到目前为止,我正在尝试使用此查询
select it1.*
from ingredient_translations it1
left outer join ingredient_translations it2
on it1.ingredient_id = it2.ingredient_id
and it1.id < it2.id
where it1.language = 'es'
但它现在给出了预期的结果:/
flag
我正在使用postgresql,虽然我试图使用连接这样做,所以我可以设置一个跨db(Postgresql - MySQL)解决方案。
拜托,任何见解都会被贬低! :d
答案 0 :(得分:0)
static const char lowercase[] = "abcdefghijklmnopqrstuvwxyz";
char *p = strchr(lowercase, text[i]);
if (p) {
int offset = (p - lowercase + key)%26;
text[i] = lowercase[offset];
}
答案 1 :(得分:0)
使用ROW_NUMBER()
而不是partition
。
<强>查询强>
select id,name,ingredient_id,language from
(
select id,name,ingredient_id,language,
row_number() over
(
partition by ingredient_id
order by id
) rn
from tbl_Name
)t
where t.rn < 2;