【问题标题】:fetch and display values from multiple mysql tables using php使用php从多个mysql表中获取并显示值
【发布时间】:2012-09-08 08:10:05
【问题描述】:

嗨,我需要通过用户 ID 的单个 mysql 查询来显示来自多个表的值。我有 6 桌以下...

国家/地区:countryid,国家/地区

:stateid、statename、countryid

城市:cityid,城市,stateid。

类别:categoryid、category_name。

sub_categories:sub_category_id、sub_category_name。

用户:userid、username、countryid、stateid、city、category_id 和 sub_category_id。

现在我想按用户 ID 显示所有详细信息。我写了查询,之后它只显示国家、州、类别和子类别的 ID,而不显示它们的名字。我正在使用 select 语句以及 join 语句。但没有得到准确的输出。我有加入表查询的基本知识。请给出想法或查询以显示我的输出。

【问题讨论】:

    标签: php mysql


    【解决方案1】:

    您可以使用这样的连接:

    select
        a.username,
        b.country,
        c.statename,
        d.city,
        e.category_name,
        f.sub_category_name
    from
        users a
            join country b
                on a.countryid=b.countryid
            join state c
                on a.stateid=c.stateid
                and a.countryid=c.countryid
            join city d
                on a.city=d.cityid
                and a.stateid=d.stateid
            join categories e
                on a.category_id=e.categoryid
            join sub_categories f
                on a.sub_category_id=f.sub_category_id
    

    我在这里使用您问题中的 users.city 列名,但它真的是 cityid - 这将更符合您的列命名约定的其余部分。

    【讨论】:

      【解决方案2】:

      数据库结构可以更好,而且,在你的表中总是有统一的命名法,编写查询更容易。

      这样就足够了:

      SELECT c.country, s.statename, ci.city, ca.category_name, sc.sub_category_name FROM country c, state s, city ci, categories ca, sub_categories sc, users u WHERE u.country.id = c.countryid, u.stateid = s.stateid, u.city = ci.city, u.category_id = ca.categoryid AND u.sub_category_id = sc.sub_category_id ORDER BY u.userid DESC;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-05-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-09-11
        • 2013-08-11
        • 2013-10-11
        • 1970-01-01
        相关资源
        最近更新 更多