相关疑难解决方法(0)

无法绑定多部分标识符

我在SO上看到过类似的错误,但我找不到解决问题的方法.我有一个SQL查询,如:

SELECT DISTINCT
        a.maxa ,
        b.mahuyen ,
        a.tenxa ,
        b.tenhuyen ,
        ISNULL(dkcd.tong, 0) AS tongdkcd
FROM    phuongxa a ,
        quanhuyen b
        LEFT OUTER JOIN ( SELECT    maxa ,
                                    COUNT(*) AS tong
                          FROM      khaosat
                          WHERE     CONVERT(DATETIME, ngaylap, 103) BETWEEN 'Sep 1 2011'
                                                              AND
                                                              'Sep 5 2011'
                          GROUP BY  maxa
                        ) AS dkcd ON dkcd.maxa = a.maxa
WHERE   a.maxa <> '99'
        AND LEFT(a.maxa, 2) = b.mahuyen
ORDER BY maxa;
Run Code Online (Sandbox Code Playgroud)

当我执行此查询时,错误结果为: 无法绑定多部分标识符"a.maxa".为什么?
P/s:如果我将查询分成2个单独的查询,它运行正常.

SELECT DISTINCT
        a.maxa ,
        b.mahuyen ,
        a.tenxa ,
        b.tenhuyen …
Run Code Online (Sandbox Code Playgroud)

sql sql-server sql-server-2005

186
推荐指数
6
解决办法
73万
查看次数

一个查询中多个表上的多个左连接

我有一个master表,其中有多个级别存储的项目,父项和子项,还有第二个表可能有也可能没有其他数据.我需要从我的主表中查询两个级别,并在我的第二个表上有一个左连接,但由于我的查询中的排序,这将不起作用.

SELECT something FROM master as parent, master as child
  LEFT JOIN second as parentdata ON parent.secondary_id = parentdata.id
  LEFT JOIN second as childdata ON child.secondary_id = childdata.id
WHERE parent.id = child.parent_id AND parent.parent_id = 'rootID'
Run Code Online (Sandbox Code Playgroud)

左连接仅适用于from子句中的最后一个表,因此我只能使其适用于其中一个左连接.在上面的示例中,左连接都不起作用,因为第一个左连接指向from子句中的第一个表,第二个连接将永远不会像这样工作.

我怎样才能做到这一点?

sql postgresql join left-join multiple-tables

24
推荐指数
2
解决办法
18万
查看次数

如何在MySQL LEFT JOIN中使用别名

我的原始查询是使用WHERE子句而不是JOIN进行连接.我意识到这并没有让那些没有任何明星或类型的电影没有出现,所以我想我必须做一个LEFT JOIN来展示每部电影.这是我原来的SQL:

SELECT *
FROM movies m, stars s, stars_in_movies sm, genres g, genres_in_movies gm
WHERE m.id = sm.movie_id
AND sm.star_id = s.id
AND gm.genre_id = g.id
AND gm.movie_id = m.id
AND m.title LIKE '%the%'
AND s.first_name LIKE '%Ben%'
ORDER BY m.title ASC
LIMIT 5;
Run Code Online (Sandbox Code Playgroud)

我试图对电影进行LEFT JOIN我肯定做错了.

SELECT *
FROM movies m, stars s, stars_in_movies sm, genres g, genres_in_movies gm
LEFT JOIN movies m1 ON m1.id = sm.movie_id
LEFT JOIN movies m2 ON m2.id = gm.movie_id
AND sm.star_id = s.id …
Run Code Online (Sandbox Code Playgroud)

mysql sql join left-join

22
推荐指数
2
解决办法
7万
查看次数

内连接和外连接; 表格的顺序是重要的吗?

为什么在组合外部和内部连接时表的顺序很重要?postgres失败如下:

SELECT grp.number AS number,     
       tags.value AS tag   
FROM groups grp,
     insrel archiverel  
LEFT OUTER JOIN ownrel ownrel ON grp.number = ownrel.dnumber   
LEFT OUTER JOIN tags tags ON tags.number = ownrel.snumber   
WHERE archiverel.snumber = 11128188 AND    
      archiverel.dnumber = grp.number 
Run Code Online (Sandbox Code Playgroud)

结果:

ERROR:  invalid reference to FROM-clause entry for table "grp" LINE 5: LEFT OUTER JOIN ownrel ownrel ON grp.number = ownrel.d... 
^ HINT:  There is an entry for table "grp", but it cannot be referenced from this part of the query. …
Run Code Online (Sandbox Code Playgroud)

postgresql

16
推荐指数
3
解决办法
3万
查看次数

打击INNER JOINS - 章节:未知栏目

SELECT p.id
FROM produkty p, przyporzadkowania pr, stany_magazynowe, gk_grupy_produkty
INNER JOIN sub_subkategorie ssi
ON pr.sub_subkategorie_id = ssi.ID
Run Code Online (Sandbox Code Playgroud)

表及其重要字段

produkty - id, pozycja
przyporzadkowania - id, produkt_id, sub_kategoria_id, sub_subkategoria_id
sub_subkategorie - id, subkategorie_id, pozycja
subkategorie - id, kategorie_id, pozycja
kategorie - id, pozycja
Run Code Online (Sandbox Code Playgroud)

错误"#1054 - 'on子句'中的未知列'pr.sub_subkategorie_id'"

试过

SELECT p.id, pr.sub_subkategorie_id
Run Code Online (Sandbox Code Playgroud)

结果相同.

完整查询(未通过上述查询失败进行测试):

SELECT p.id
FROM produkty p, przyporzadkowania pr, stany_magazynowe, gk_grupy_produkty
INNER JOIN sub_subkategorie ssi ON pr.sub_subkategorie_id = ssi.ID
INNER JOIN subkategorie si ON ssi.subkategorie_id = si.id
INNER JOIN kategorie c …
Run Code Online (Sandbox Code Playgroud)

mysql sql join mysql-error-1054

1
推荐指数
1
解决办法
1120
查看次数