我最近开始使用PDO,因为我正在努力提高自己的PHP技能,并了解串联已经被弃用了。
目前,我已经建立了一个基本的用户控制面板"用户注册的系统及其详细信息已分配给accounts
表。在accounts
行,他们有business_1
,business_2
和business_3
,其中填充了businesses
表格中的行ID。
我想查找此用户名的business_x
行中每个accounts
列的ID,在businesses
表中找到它们,然后打印每个列中的列值相关的行......但我不知道怎么做!
我想要解决这个问题,因为语法与我已经使用的弃用的SQL PHP语句完全不同。如果您有更好的学习资源,请随时在评论中告诉我。
答案 0 :(得分:0)
这可以在一个查询中处理,因此您可能不需要在使用PDO的上下文中提出此问题。但是,我会将我的答案呈现为准备好的陈述。
有几种方法可以做你要求的事情,但最简单的方法是只用[{1}}做join
:
or
对于未来而言,拥有相同信息的倍数通常会更好。存储在一个单独的表中,而不是" x_1"," x_2"," x_3"列。理想情况下,您会有select
businesses.business_name
from
businesses join accounts on
(
businesses.id=accounts.business_1
or businesses.id=accounts.business_2
or businesses.id=accounts.business_3
)
where
accounts.id=?
,accounts
和businesses
的表格。 account_businesses表将包含帐户ID列和业务ID的另一列,您将从帐户表中删除business_#列。
这使得更简单的查询;更好的数据分割用于分析;允许你有一个"无限的"每个帐户的其他公司数量;并且不会使用一堆空的二级/三级/等列来混乱你的表。
使用该方法的查询将非常简单:
account_businesses