我有一张表#include <stdio.h>
void displayArray();
int main()
{
int size;
printf("Hello. What will be the size of the new array?\n");
scanf("%d", &size);
int myarray[size];
for (int i = 0; i < size; i++)
{
printf("Enter the %d. element\n" , (i + 1));
scanf("%d", &myarray[i]);
}
displayArray(myarray[size], size);
return 0;
}
void displayArray(int myarray[], int size)
{
printf("Your array is: ");
for (int i = 0; i < size; i++)
{
printf("%d ", myarray[i]);
}
return;
}
和一张表products
。
product-languages
我想在products:
prd_id|prd_name
product-languages:
prd_id|language_id|prd_name
1 |1 |Product_German_name
1 |2 |Product_English_name
1 |4 |Product_French_name
上加入产品语言,然后按我的prd_id
优先级列表对其进行排序(例如:2,1,4) - 首先我想要{{1}的结果如果这不可用,我希望language_id
作为第一个结果。
这在SQL中可行吗?我认为我的个人订单是问题,因为我必须检查lang_id=2
是否可用......
可能是子查询?
由于
答案 0 :(得分:0)
这在MySQL中有点痛苦,但你可以做到。一种方法使用变量:
select t.*
from (select t.*,
(@rn := if(@prd_id = prd_id, @rn + 1,
if(@prd_id := prd_id, 1, 1)
)
) as rn
from producct_languages t join
(select @prd_id := -1, @rn := 0) params
order by prd_id, field(language_id, 2, 1, 4)
) t
where rn = 1;
答案 1 :(得分:0)
您可以通过{{1}}在标准SQL中执行此操作,例如:
{{1}}