簡體   English   中英

SQL:SELECT,其中來自不同表的2列相同

[英]SQL: SELECT where 2 columns from different tables are the same

我需要使用包含有關(前)總統的信息的數據庫。 我需要檢查是否有具有相同愛好並在同一年結婚的總統。

因此,總裁可以在pres_hob表中擁有多個愛好。 結婚年份在marsyear列的pres_mar表中。

我試着在SQLite中的INNER JOIN表中,愛好和mar_year相等,除了pres_name之外。 這樣,JOIN毫無用處,這是有道理的。 我對此有點陌生。

任何幫助表示贊賞

在此處輸入圖片說明

這是帶有多個joins的一個選項:

select p1.pres_name, p2.pres_name, ph.hobby
from pres_mar p1
     join pres_mar p2 on p1.pres_name != p2.pres_name and p1.mar_year = p2.mar_year
     join pres_hob ph on p1.pres_name = ph.pres_name
     join pres_hob ph2 on p2.pres_name = ph2.pres_name and ph.hobby = ph2.hobby

根據您的預期結果, exists另一個使用方法:

select pm.pres_name, ph.hobby
from pres_mar pm 
     join pres_hob ph on pm.pres_name = ph.pres_name
where exists (
    select 1
    from pres_mar pm2
         join pres_hob ph2 on pm2.pres_name = ph2.pres_name
    where pm.pres_name != pm2.pres_name and
          ph.hobby = ph2.hobby
    )

這聽起來像是一個糟糕的數據庫架構,我假設它是出於學習目的,無論如何,您可以做類似的事情

SELECT
  h.name,
  h.hobby,
  m.year
FROM
  pres_hob h,
  pres_mar m
WHERE
  h.hobby = 'tennis'
AND
  m.year = 2016

對於每位擁有2016年結婚年和網球愛好的總統,這將返回1項記錄。

暫無
暫無

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

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