我有2个表(tabl1
和tbl2
),我想要一个通过匹配tbl2
和{{1}来加入tbl1
到col1id
的查询因此,结果集包含col2id
列tbl1
name
列的tbl2
数据。
以下查询不返回任何数据:
SELECT Date
,cast(tbl1.col1_id as varchar) AS "col1name"
,tbl2.name::varchar AS "tabl2name"
,tbl1.currency::money as "Avg currency"
,CASE WHEN rich IS NULL then 'Unknown'
ELSE 'True' END AS "bank"
,CAST(Ranking AS FLOAT) / 18 + 1 AS "Rich Ranking"
,tbl1.Reviews as "Reviews"
FROM tbl1
JOIN tbl2
ON tbl1.col1id = tbl2.col2id
tbl1.col1id
包含3,999,999
当我进行完全正确的加入时,我能够从2个单独的表中获取所有数据
我创建了一个新表,其中包含我想要的某些名称。
我创建了一个新表,其中的值与3,999,999
的完全匹配,我最终没有得到匹配,所以我认为类型有问题而且我一直在弄乱数据a我和卡住了。
我猜这些值不是同一类型,所以我做了一些额外的工作,输入它作为整数或varchar在其他地方和同一个查询。 但结果只返回,但没有产生错误,所以我认为这是我的类型错误。
答案 0 :(得分:0)
如果你只想做你在帖子中描述的内容,最好避免不必要的复杂性。以下是否会返回任何内容?
# include <stdio.h>
int main()
{
int i, j, k, t, m, x[100][100], s, c, n;
long ans, mul;
scanf ("%d", &t);
while (t--) {
scanf ("%d%d", &s, &c);
n = s;
for (i = 0; i < n; i++)
scanf ("%d", &x[i][0]);
for (j = 1; j < n; j++)
for (i = 0; i < n; i++) {
x[i][j] = x[i+1][j-1] - x[i][j-1];
}
k = n;
printf("\n");
for (i = 0; i < n; i++) {
for(j = 0; j < k; j++)
printf ("%d ", x[i][j]);
printf ("\n");
k--;
}
printf ("\n\n");
for (m = 1; m <= c; m++) {
ans = x[0][0];
for ( i = 1; i < n - 1; i++) {
mul = x[0][i];
for (j = 1; j <= i; j++)
mul = mul * (s + m - j);
ans = ans + mul;
}
printf ("%ld ", ans);
}
printf ("\n");
}
return 0;
}
如果什么都没有回来我会首先建议检查是否有任何tbl2.col2id匹配tbl1.col1id。 你可以通过使用LEFT JOIN(atm使用JOIN,你真的使用INNER JOIN)轻松完成。然后,您的行集将包含来自tbl1的所有行,如果不能进行连接,则在tbl2.name中具有空值。
除此之外,我将确保tbl1.col1id和tbl2.col2id的数据类型相同。