【问题标题】:MySQL query selecting values from two tables [closed]MySQL查询从两个表中选择值[关闭]
【发布时间】:2010-08-28 17:16:14
【问题描述】:

我有以下两张表:

Cities: id | name | county_id
Counties: id | name

我将此查询传递给县“名称”,并尝试从具有相同县 ID 的城市中选择所有行的 ID 和名称。我很难跨这两个数据库表构建查询。这是我所拥有的:

"SELECT cities.id,cities.name
FROM cities,counties
WHERE counties.name='$county' AND cities.county_id=counties.id
ORDER BY cities.name ASC";

【问题讨论】:

  • 以上是怎么失败的?我觉得很好。
  • 对不起,这实际上是我的数据库中的一个错误,没有产生任何结果。以上确实有效

标签: php mysql sql join


【解决方案1】:

如果您在 Unix 上运行,并且我按字面意思回答您的问题,您的问题可能与区分大小写有关。

在 Unix 中表名区分大小写,因此如果您的表名为 Counties 和 Cities,那么在 SQL 查询中使用 counties 和 cities 时会出现问题。

也就是说,Will A 关于mysql_error() 的回复至关重要...如果您需要进一步的帮助,请让您的代码打印出错误并在此处发布。

【讨论】:

    【解决方案2】:
    SELECT cities.id,cities.name
    FROM Counties INNER JOIN CITIES 
    ON Counties.id = Cities.county_id
    WHERE  counties.name='$county'
    ORDER BY cities.name ASC;
    

    【讨论】:

      【解决方案3】:

      您可能正在使用 mysql_query("..."),因此请在查询下方立即添加 echo mysql_error(); 行,并查看它是否因某种原因而失败。我认为在这种情况下您没有正确连接,并且原始查询看起来很好(尽管使用旧的连接语法 - 下面给出了更好的语法)...

      SELECT ci.id, ci.name
      FROM  cities ci
      INNER JOIN counties co
      ON ci.county_id = co.id
      WHERE co.name='$county'
      ORDER BY ci.name ASC
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-03-17
        • 1970-01-01
        • 2014-02-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多