簡體   English   中英

SQL查詢聯接-不相關的表

[英]SQL query join- unrelated tables

有人可以幫助我在沒有任何主鍵或輔助鍵的情況下加入兩個表嗎? 樣品表是

表格1

| ID | NAME |
|  1 | x    |
|  2 | Y    |
|  3 | z    |

表2

| Num | NAME | DATE      |
| 52  | X    | 12-aug-17 |
| 53  | X    | 11-apr-17 |
| 62  | X    | 10-aug-11 |
| 12  | y    | 2-jan-16  |
| 23  | Y    | 3-apr-18  |

我想從X檢索數據

select * 
from table2 
where name = 'x';

| Num | NAME | DATE      |
| 52  | X    | 12-aug-17 |
| 53  | X    | 11-apr-17 |
| 62  | X    | 10-aug-11 |

現在,我將從table2中獲得三個數據。 在執行此步驟后,我有點受困。 我想從表2獲取數據的頂部並與表1結合。

我希望最終輸出應該是

| ID | NAME | Num | DATE      |
| 1  | x    | 52  | 12-aug-17 |

有人可以建議我如何加入此桌嗎? 當我們有主鍵時很容易加入

謝謝

您需要使用子查詢來獲得最大的DATE ,如下所示:

select t1.id, t2.*
  from table1 t1
  join table2 t2 on t2.name = t1.name
  where t2.date = (
    select max(date) from table2 where name = 'x'
  );

您可以使用此:

SELECT TOP(1) table1.ID, table2.Num, table2.Name, table2.DATE
FROM table2 INNER JOIN table1 ON table1.NAME = table2.NAME
WHERE table2.NAME = 'x'
ORDER BY table2.DATE ASC

要么

SELECT table1.ID, table2.Num, table2.Name, table2.DATE
FROM table1 INNER JOIN 
     (SELECT TOP(1) * FROM table2 WHERE NAME = 'x' ORDER BY DATE ASC) table2
     ON table1.NAME = table2.NAME

暫無
暫無

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

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