mysql - Oracle - 尝试在同一查询中查询两个表中的数据

标签 mysql oracle

我尝试主要从一个表查询数据,但我还需要同一数据库中另一个表的两列。我的查询的一部分看起来有点像这样:

SELECT
      'Contact 1' AS "Phone 2 - Type",
      Emerg_Phone_1 AS "Phone 2 - Value",
      'Contact 2' AS "Phone 3 - Type",
      Emerg_Phone_2 AS "Phone 3 - Value",
      'Student Cell' AS "Phone 4 - Type",
      STUDENTCELL AS "Phone 4 - Value",
FROM STUDENTS JOIN STUDENTS2

所以基本上,除了 STUDENTCELL 之外的所有五个选择都来自 STUDENTS 表,但我需要在同一查询中使用 STUDENTS2 表中的一列 STUDENTCELL。感谢您的帮助和建议,我对 mySQL 和 oracle 都很陌生。

最佳答案

你几乎得到了解决方案。除了连接子句之外。您需要使用公共(public)列连接两个表。因此,您可以使用 ON 子句Using 子句。 这两者的基本区别是

USING 子句

The USING clause is used if several columns share the same name but you don’t want to join using all of these common columns. The columns listed in the USING clause can’t have any qualifiers in the statement, including the WHERE clause:

ON 子句

The ON clause is used to join tables where the column names don’t match in both tables. The join conditions are removed from the filter conditions in the WHERE clause:

我正在将 Common 列视为 ID。如果两个表具有不同的列名,则使用 on

SELECT
      'Contact 1' AS "Phone 2 - Type",
      Emerg_Phone_1 AS "Phone 2 - Value",
      'Contact 2' AS "Phone 3 - Type",
      Emerg_Phone_2 AS "Phone 3 - Value",
      'Student Cell' AS "Phone 4 - Type",
      STUDENTCELL AS "Phone 4 - Value",
FROM STUDENTS JOIN STUDENTS2 ON (STUDENTS.Stud_ID=STUDENTS2.Stud2_ID)

如果两个表具有相同的列名,则使用using

SELECT
      'Contact 1' AS "Phone 2 - Type",
      Emerg_Phone_1 AS "Phone 2 - Value",
      'Contact 2' AS "Phone 3 - Type",
      Emerg_Phone_2 AS "Phone 3 - Value",
      'Student Cell' AS "Phone 4 - Type",
      STUDENTCELL AS "Phone 4 - Value",
FROM STUDENTS JOIN STUDENTS2 using (id);

您可能想浏览Oracle JOINSSQL JOINS

关于mysql - Oracle - 尝试在同一查询中查询两个表中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32250924/

相关文章:

mysql 比较列

java - 如何加快以下 JDBC 插入/导入过程?

mysql - 我想优化这个查询,它需要很多时间来执行

sql - 将一列与两个表连接起来

mysql - 如何使用具有最大投票值的 count() 检索图像路径值

sql - 根据oracle sql中其他表中的计数重新启动行号

oracle - 条件触发

sql - 选择边界最长的州

sql - Oracle 中的表 "Diff"

mysql - 用于航空公司预订应用程序的动态结构化 mySQL 数据库