内部加入SQL有问题

时间:2013-05-15 09:53:28

标签: php sql

我有两张桌子:

骑单车= DobnameISO_id

国家= country_namegdppopulationISO_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'
然而,它不起作用,我不知道为什么。

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

3 个答案:

答案 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'