使用php从多个mysql表中获取并显示值
Posted
技术标签:
【中文标题】使用php从多个mysql表中获取并显示值【英文标题】:fetch and display values from multiple mysql tables using php 【发布时间】: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 语句。但没有得到准确的输出。我有加入表查询的基本知识。请给出想法或查询以显示我的输出。
【问题讨论】:
【参考方案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;
【讨论】:
以上是关于使用php从多个mysql表中获取并显示值的主要内容,如果未能解决你的问题,请参考以下文章
如何从多个SQL表中获取值并在html / php表中显示?
如何使用 MYSQL 中的连接从多个表中获取多个列并在非空列上显示数据以及在空列上显示 null 或零
使用 PHP 和 mysqli 从多个 MySQL 表中获取数据