【发布时间】:2016-03-23 22:16:44
【问题描述】:
我在 Stackoverflow 上阅读了数十个问题,并尽我所能使用 Google,但我就是不知道如何做到这一点:
我有这两张表:
- 网站(包括字段 site_id 和 site_name)
- 国家(包括字段 country_id 和 country_name)
这些表之间通过这个表是多对多的关系:
j_sites_countries(包括字段accepted_country_id、site_FK 和country_FK)
目标是检查网站是否接受来自某个国家/地区的客户,并仅显示接受来自该国家/地区的客户的网站。因此,例如,仅显示接受来自美国的客户的网站。
检查网站与国家/地区之间是否存在关系所需的代码行是什么?我完全迷路了,希望能提供任何帮助。
我假设它是这样的,但我不知道如何实际在表之间建立连接,以便我可以显示 country_id 与 site_id 匹配的站点:
$query = $wpdb->get_results ("SELECT * FROM j_sites_countries WHERE country_FK = '1'");
【问题讨论】:
-
字段
j_sites_countries.accepted_country_id的用途是什么? -
我认为即使在联结表中的每个条目也必须有一个ID?那部分没用吗?
-
每个表应该定义一个唯一标识每一行的主键。在交集表(又名连接或联结表)中,这通常是外键列的串联,例如。
... PRIMARY KEY (site_FK, countryFK)...。如果accepted_country_id只是一个合成主键,那么是的,它没用,应该被删除。 -
我已经修改了我的示例代码,假设
accepted_country_id不是一个有用的列。
标签: php mysql database wordpress many-to-many