How to show multiple table list in mysql I have a query that has two tables one for patients and the second one for patients who has tested for covid-19 I want to show all the patients either they tested or not If tested then show the result with his/her name It only showing the patients who has tested for the covid not every one
how to solve that please ?
here’s my Query
SELECT patient.* ,covidtest.covidTestResult ,subareas.areaname FROM ( patient LEFT OUTER JOIN subareas ON patient.town_id = subareas.town_id ) LEFT OUTER join covidtest ON patient.Idnumber = covidtest.Idnumber where patient.Idnumber=covidtest.Idnumber and covidtest.CovidTestDate=(select max(covidtest.CovidTestDate)from covidtest where patient.Idnumber=covidtest.Idnumber) group by covidtest.Idnumber UNION SELECT patient.* ,covidtest.covidTestResult,subareas.areaname FROM ( patient LEFT OUTER JOIN subareas ON patient.town_id = subareas.town_id ) LEFT OUTER join covidtest ON patient.Idnumber = covidtest.Idnumber where patient.Idnumber=covidtest.Idnumber and covidtest.CovidTestDate=(select max(covidtest.CovidTestDate) from covidtest where patient.Idnumber=covidtest.Idnumber) group by covidtest.Idnumber;
Advertisement
Answer
here is what you need to do:
SELECT
patient.*,
covidtest.covidTestResult,
subareas.areaname
FROM patient
left join subareas on patient.town_id = subareas.town_id
Left join lateral
( select covidTestResult from covidtest
where patient.Idnumber = covidtest.Idnumber
order by CovidTestDate desc
limit 1
) covidtest on 1=1