簡體   English   中英

檢查第一個表中的行,將它們與第二個表中的行進行比較並輸出匹配項

[英]Check rows in first table, compare them with rows from the second table and output a match

我根據要求縮短了我的故事。

我正在嘗試為學生創建時間表。 我有兩個表:

CREATE TABLE IF NOT EXISTS TIMETABLE
(ID INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
YEAR TEXT NOT NULL,
DATE TEXT,
GROUP TEXT,
BEGIN TEXT,
END TEXT,
ROOM TEXT,
SUBJECT TEXT NOT NULL,
TEACHER TEXT,
IN_DATES INT,
TIMESTAMP TIME)

CREATE TABLE IF NOT EXISTS DATES
(ID INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
SUBJECT TEXT NOT NULL,
TEACHER TEXT NOT NULL,
GROUP TEXT,
DATE TEXT,
TIMESTAMP TEXT

第一個表格包含所有系的所有課程(例如,學習的第一年)。 第二個包含行的日期不是每周一次的行(這意味着,例如,每兩周一次或日期不規則)。

簡而言之:如果row的IN_DATES = 0則可以直接輸出。 如果row的IN_DATES = 1那么我們需要檢查DATES是否存在具有相同日期和主題的課程。 如果匹配,則從TIMETABLE輸出整個行。 如果沒有匹配項,則不顯示此行。

如何編寫SQL查詢來完成此任務?

我的英語可能不是很好,因為它不是我的母語。

新年快樂 ;)

SELECT *
FROM Timetable t
WHERE in_dates = 0 OR
  (
    in_dates = 1 AND
    EXISTS (
     SELECT 1
     FROM Dates d
     WHERE d.subject = t.subject AND
       d.date = t.date
    )
  )

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM