0

我有两张桌子:

骑车人 = 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'

但是它不起作用,我不知道为什么。

任何人都可以提供任何见解吗?

4

3 回答 3

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'
于 2013-05-15T10:17:59.523 回答
1

使用左连接从 Cyclist 中选择所有正确的记录,并通过 Country 的数据扩展响应:

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'
于 2013-05-15T09:56:11.223 回答
0

您已将整个 Cyclist.dob 包含在 WHERE 子句中,您需要单独包含 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'
于 2013-05-15T10:01:34.930 回答