所以,我正在尝试查询多个表。
这是我到目前为止所做的:
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'
)
这些似乎都不起作用,而且非常令人沮丧。如果有人能为我提供一些指导,我们将不胜感激。
答案 0 :(得分:1)
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'
答案 1 :(得分:0)
我们可以从这开始......
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';
...