[英]How to join two or more tables without a 'common column' in sql
這是我的課上作業給我帶來的一些麻煩。
顯示Syndey中任何部門有5名以上員工加入的月份。
PS:我為上限表示歉意。 我的老師指示我創建這樣的表格。
表格位置:
LOCATION_ID NOT NULL NUMBER(4)
STREET_ADDRESS VARCHAR2(40)
POSTAL_CODE VARCHAR2(12)
CITY NOT NULL VARCHAR2(30)
STATE_PROVINCE VARCHAR2(25)
COUNTRY_ID CHAR(2)
表作業:
JOB_ID NOT NULL VARCHAR2(10)
JOB_TITLE NOT NULL VARCHAR2(35)
MIN_SALARY NUMBER(6)
MAX_SALARY NUMBER(6)
工作歷史:
JOB_ID NOT NULL VARCHAR2(10)
JOB_TITLE NOT NULL VARCHAR2(35)
MIN_SALARY NUMBER(6)
MAX_SALARY NUMBER(6)
表員工:
EMPLOYEE_ID NOT NULL NUMBER(6)
FIRST_NAME VARCHAR2(20)
LAST_NAME NOT NULL VARCHAR2(25)
EMAIL NOT NULL VARCHAR2(25)
PHONE_NUMBER VARCHAR2(20)
HIRE_DATE NOT NULL DATE
JOB_ID NOT NULL VARCHAR2(10)
SALARY NUMBER(8,2)
COMMISSION_PCT NUMBER(2,2)
MANAGER_ID NUMBER(6)
DEPARTMENT_ID NUMBER(4)
表部門:
DEPARTMENT_ID NOT NULL NUMBER(4)
DEPARTMENT_NAME NOT NULL VARCHAR2(30)
MANAGER_ID NUMBER(6)
LOCATION_ID NUMBER(4)
首先,請不要對在SQL腳本中使用大寫表示歉意。 您的老師正在教您正確的指導原則。 實際上,建議使用大寫字母(尤其是SQL關鍵字和數據類型)來編寫SQL腳本,以提高可讀性(干凈代碼方式)。 如果您甚至想將列名都保留為大寫,那是您的選擇。
好了,這是您的查詢以獲得所需的輸出。 您尚未提及您當前定位的數據庫。 我已經編寫了針對Microsoft SQL Server數據庫的查詢。
SELECT HiredMonth,COUNT(HiredMonth)
FROM
(
SELECT DATENAME(MONTH,E.HIRE_DATE) AS HiredMonth
FROM Employees E
INNER JOIN Departments D ON E.DEPARTMENT_ID = D.DEPARTMENT_ID
INNER JOIN Locations L ON D.LOCATION_ID = L.LOCATION_ID
WHERE CITY = 'Sydney') AS P
Group BY P.HiredMonth
PS:如果您要定位其他數據庫,則可能需要對我的查詢中使用的一些內置函數(如DATENAME)進行相應更改,以使該查詢可在其他數據庫中編譯。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.