gpt4 book ai didi

mysql - 左连接不适用于子查询

转载 作者:行者123 更新时间:2023-11-29 08:59:09 26 4
gpt4 key购买 nike

我正在尝试编写这个 SQL:

SELECT  
a.a_id as aid,
b.b_id as bid ,
c.title
FROM b ,
( SELECT
a.a_id
FROM a
WHERE a.type = '2'
) AS a
LEFT JOIN c ON b.b_id = c.c_id

如果我没有引用 LEFT JOIN 或选择 c,那么它就可以工作。如果我确实放置了左连接,则会收到错误消息,指出 b.b_id 是未知列。为什么我不能在这里使用左连接,或者更具体地说,为什么表 b 中的任何列都是未知的?该语句的第一部分是从表 b 中进行的正常选择,那么为什么它找不到这些列呢?

什么时候使用子查询和内连接?在此示例中:

  • 表 a 包含固定长度标志(一堆整数)以及有关主题的信息
  • 表 c 包含主题标题等内容。
  • 表 b 包含类别信息。

我想要完成的是拉取某种类型的所有类别(表a),并拉取所有主题标题(表c),其中类别id与为主题id定义的相同(表b)。

最佳答案

如果将表“a”与“b”互换,sql 就会编译(但这会给出您想要的结果吗?):

SELECT  
a.a_id as aid,
b.b_id as bid,
c.title
FROM
( SELECT
a.a_id
FROM a
WHERE a.type = '2'
) AS a, b
LEFT JOIN c ON b.b_id = c.c_id

关于mysql - 左连接不适用于子查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9120933/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com