簡體   English   中英

SQL查詢兩個表

[英]SQL query over two tables

我在查詢時遇到問題:
我的表如下:

車手

|DRIVER_ID|FIRST_NAME|LAST_NAME|AGE|
|        1|John      |Smith    |19 |
|        2|Steve     |Oak      |33 |
|        3|Mary      |Sanchez  |22 |

車手隊

|DRIVERS_IN_TEAMS_ID|DRIVER_ID|TEAM_ID|BEG_DATE |END_DATE |
|                  1|        1|      1|18-NOV-05|    -    |
|                  2|        3|      2|10-APR-12|    -    |
|                  3|        2|      3|19-JUL-01|02-AUG-04|

BEG_DATE使用“ sysdate-number”完成

我想進行一個查詢,在該查詢中顯示姓氏和名字最舊的驅動程序,而該驅動程序仍在團隊中。

我嘗試了一些從google找到的示例,但無法使它們正常工作。 我是SQL的新手,不知道如何執行此查詢。

我發現一個例子

SELECT FIRST_NAME, LAST_NAME 
FROM DRIVER, DRIVERS_IN_TEAMS 
WHERE DRIVER.DRIVER_ID = DRIVERS_IN_TEAMS.DRIVER_ID 
AND DRIVERS_IN_TEAMS.BEG_DATE =  
     SELECT (SELECT MIN(BEG_DATE) 
             FROM DRIVERS_IN_TEAMS) (SELECT MAX(AGE) 
     FROM DRIVERS);

嘗試這個:

select top 1 first_name, last_name from Drivers as d
    inner join Drivers_in_Teams as dit on d.driver_id = dit.driver_id
where isnull(end_date,'')=''
order by age desc

如果您有任何疑問或代碼不起作用,請發表評論。

我認為應該可以。 沒有資源可以測試和調試。 讓我知道是否有任何問題。

SELECT first_name FROM driver WHERE
driver_id in (select unique(driver_id) from driver_in_teams where end_date is NULL) 
and age =(select MAX(age) from drivers)

選擇:

SELECT first_name FROM driver d
INNER JOIN
driver_in_teams dt ON (d.driver_id=dt.driver_id)
WHERE dt.END_DATE IS NULL
AND d.age=(select MAX(age) from drivers)
SELECT FIRST_NAME, LAST_NAME, AGE 
FROM Drivers
JOIN Drivers_in_Teams ON Drivers.DRIVER_ID = Drivers_in_Teams.DRIVER_ID
WHERE Drivers_in_Teams.END_DATE IS NULL
ORDER BY AGE DESC

這應該將兩個表連接在一起,每個表上都有DRIVER_ID ,然后僅顯示NULL記錄,我認為這是您END_DATE字段中的“-”。

這應該可以解決問題:

-- get the data you want
SELECT first_name, last_name, age FROM drivers d
 WHERE d.age = (
    -- get the max age from drivers still actives
    SELECT MAX(age) FROM driver WHERE driver_id IN (
    -- get drivers still active
        SELECT drive_id FROM drivers_in_teams WHERE end_date IS NULL
    ) x

暫無
暫無

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

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