gpt4 book ai didi

MYSQL - 使用子查询和 JOIN 条件

转载 作者:行者123 更新时间:2023-11-29 21:54:32 24 4
gpt4 key购买 nike

我正在尝试学习如何在MYSQL中实现子查询和Join,我正在查询问题

对于每种被提到具有“高”技能的语言,请确定最常被提及的“中等”语言。

语言

懒惰的语言

AND  Android
C C
JAV JAVA
CPP CPP

技能表

防滑值

1   High
2 Medium
3 Low

实力

langid sid 打滑

AND     AW  2
JAVA AB 1
C AB 2
C++ AW 1

sid 名称

AB  AB1
AW AW1

下面是我的表结构

CREATE TABLE STUDENT(
SNAME VARCHAR(2) NOT NULL,
SID int NOT NULL,
PRIMARY KEY(SID)
);

CREATE TABLE LANGUAGE(
LANG VARCHAR(50) NOT NULL,
LANGID INT NOT NULL,
PRIMARY KEY(LANGID)
);


CREATE TABLE SKILL(
SKID INT,
VALUE VARCHAR(50),
PRIMARY KEY (SKID)
);


CREATE TABLE STRENGTH(
SID INT NOT NULL,
LANGID INT NOT NULL,
SKID INT,
FOREIGN KEY (SID) REFERENCES STUDENT (SID),
FOREIGN KEY (LANGID) REFERENCES LANGUAGE (LANGID),
FOREIGN KEY (SKID) REFERENCES SKILL (SKID)
);

预期输出

  prim      | sec       |    count
<小时/>
  JAVA      | C         |        1
CPP | Android | 1

我已经尝试过,但无法实现连接,

最佳答案

没有任何数据,很难说出您的标准是什么,但根据数据结构,您将像这样连接这些表:

select *
from strength st
join student s
on s.sid = st.sid
join language l
on l.langid = st.langid
left outer join skill sk
on sk.skid = st.sklevel

student 和 language 的内联接是因为外键字段定义为非空,而 sklevel 字段可以为空,因此外联接不会无意中筛选掉您想要查看的任何记录。

关于MYSQL - 使用子查询和 JOIN 条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33292270/

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