相关疑难解决方法(0)

SQL JOIN:USING,ON或WHERE有区别吗?

我想知道SQL在这些连接语句上执行的方式是否有任何不同:

SELECT * FROM a,b WHERE a.ID = b.ID

SELECT * FROM a JOIN b ON a.ID = b.ID

SELECT * FROM a JOIN b USING(ID)
Run Code Online (Sandbox Code Playgroud)

有性能差异吗?还是算法差异?

或者只是语法糖?

sql syntax performance expression join

38
推荐指数
1
解决办法
2万
查看次数

SQL,获取外键值.外键引用同一个表

MS SQL Server数据库.

我有这个简单的结构:(抱歉主键不在正确的位置)

在此输入图像描述

在TEACHER表中,我有一个外键"Chief",它引用了TEACHER.ID(同一个表).在进行SELECT查询时,我怎么能得到一个整数(Teacher.ID),而不是一个Chief的名字(TEACHER.Name for Chief)?

这个只得到一个整数(Chief的ID):

SELECT DEPARTMENT.Name, TEACHER.Name, TEACHER.IDCode, POST.Name, TEACHER.Tel, TEACHER.Salary, TEACHER.Rise, TEACHER.HireDate, Chief
FROM TEACHER, DEPARTMENT, POST
WHERE TEACHER.ID_Post = POST.ID AND
    TEACHER.ID_Department = DEPARTMENT.ID;
GO
Run Code Online (Sandbox Code Playgroud)

sql sql-server select key

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

SQL与不明确的列连接

我正在尝试连接几个表来生成具有先决条件的类列表.一切都很好,除了我需要两个类的名字前提条件和原始类.

到目前为止我有

SELECT course_name, c.course_number, course_name, prereq
FROM rearp.course c, rearp.prereq p
WHERE c.course_number = p.course_number;
Run Code Online (Sandbox Code Playgroud)

这给了我(你已经可以看到一个问题,course_name在那里两次[不知道如何处理它否则])

  • 课程名称(好的)
  • 班级(是的)
  • 课程名称再次(等同名称!)
  • 前提条件(好)

忽略格式只是注意课程名称或先决条件仅对应于原始课程而不是先决条件.

我的问题是我不能得到匹配的名字.

sql oracle

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

标签 统计

sql ×3

expression ×1

join ×1

key ×1

oracle ×1

performance ×1

select ×1

sql-server ×1

syntax ×1