我有两张桌子:
骑单车= Dob
,name
,ISO_id
国家= country_name
,gdp
,population
,ISO_id
。
我需要查询以获取Cyclist.name,Country.country_name,Country.gdp,Country.population。
使用用户输入的两个日期。这两个日期用于搜索在日期之间出生的所有自行车手。
这是我迄今为止所尝试过的:
SELECT Cyclist.name, Country.country_name, Country.gdp, Country.population
FROM Cyclist
INNER JOIN Country
ON Cyclist.ISO_id = Country.ISO_id
WHERE Cyclist.dob between '$date1' AND '$date2'
然而,它不起作用,我不知道为什么。
任何人都可以提供任何见解吗?
答案 0 :(得分:2)
您可以使用
SELECT Cyclist.name, Country.country_name, Country.gdp, Country.population
FROM Cyclist
LEFT JOIN Country
ON Cyclist.ISO_id = Country.ISO_id
Cyclist.dob>='$date1' and Cyclist.dob<='$date2'
答案 1 :(得分:1)
使用左连接从骑自行车者中选择所有正确的记录,并通过来自国家/地区的数据扩展响应:
SELECT Cyclist.name, Country.country_name, Country.gdp, Country.population
FROM Cyclist
LEFT JOIN Country
ON Cyclist.ISO_id = Country.ISO_id
WHERE `Cyclist.dob` between '$date1' AND '$date2'
答案 2 :(得分:0)
你已经在WHERE子句中包含了整个Cyclist.dob,你需要单独包含Cyclist和dob来工作。
SELECT Cyclist.name, Country.country_name, Country.gdp, Country.population
FROM Cyclist
INNER JOIN Country
ON Cyclist.ISO_id = Country.ISO_id
WHERE `Cyclist`.`dob` between '$date1' AND '$date2'