簡體   English   中英

一個查詢中有多個MySQL表

[英]Multiple MySQL Tables in one query

因此,我正在嘗試查詢多個表。

這是我到目前為止所擁有的:

SELECT * FROM patientdetails  
WHERE DATEDIFF( CURRENT_DATE, DOB ) /365 <18 
and Gender='Male'  
AND RAMQ in 
(
   SELECT `RAMQ` 
   FROM `pathology` 
   WHERE `Result`='positive'
)

這很好,但是我需要將日期與另一個表中的日期字段進行比較,我已經嘗試了許多不同的解決方案。

解決方案1:

SELECT * FROM patientdetails  
WHERE DATEDIFF( pathology.Date, DOB ) /365 <18 
and Gender='Male'  
AND RAMQ in 
(
   SELECT `RAMQ`  
   FROM `pathology` 
   WHERE `Result`='positive'
)   

解決方案2:

SELECT * FROM patientdetails p, pathology pp  
WHERE DATEDIFF( pp.Date, p.DOB ) /365 <18 
and p.Gender='Male'  
AND p.RAMQ in 
(
   SELECT `RAMQ` 
   FROM `pathology` 
   WHERE `Result`='positive'
)

這些似乎都不起作用,而且相當令人沮喪。 如果有人可以為我提供一些指導,將不勝感激。

以這種方式JOIN他們:

SELECT d.* 
FROM patientdetails  AS d
INNER JOIN pathology AS p ON d.RAMQ = p.RAMQ
WHERE DATEDIFF(p.Date, d.DOB ) /365 < 18 
  AND d.Gender='Male' 

我們可以從這里開始...

SELECT * 
  FROM patientdetails pd 
  JOIN pathology g
    ON g.RAMQ = pd.RAMQ 
   AND g.Result = 'positive'
 WHERE pd.DOB > CURDATE() - INTERVAL 18 YEAR 
   AND pd.Gender='Male';  

...?

暫無
暫無

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

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