如何查询存储在数据库中的多个选择元素
P粉347804896
P粉347804896 2024-04-04 13:18:46
0
1
418

查询专业领域(存储为任何选定项目数组)不起作用。我正在尝试找出一种在编辑时获取注册农民的专业知识领域的方法。

我有两张桌子。数据库中的登记农民表和专业领域表。

专业领域存储在专业领域表中。

注册农民表包含注册农民的所有数据。

这是专业领域表:

area_of_expertise_id id_number_of_the_farmer areas_of_expertise register_farmer_id
1 23232223 培养 1
2 23233453 收获 2

注册农民表:

register_farmer_id name_of_the_farmer age_of_the_farmer
1 无名氏 23
2 玛丽·多伊 34

我想在专业领域表中拥有一个注册农民 ID,就像在注册农民表中一样。我猜这将是一个外键。

我正在尝试查询某个农民的所有专业领域。查询到的数据将显示在其页面上以供编辑。

将数据存储在专业领域效果很好。我使用 foreach 循环来存储数据。现在的问题是查询数据。

请帮忙。

P粉347804896
P粉347804896

全部回复(1)
P粉060112396

您可能需要过度考虑您的表格设计,因为这看起来像经典的 1:n 关系(即使是 1:1,信息也不会改变)

尝试这样:

Farmers:
ID (PRIMARY, AutoIncrement), name, age

Expertises:
farmerID (index), areaOfExpertise

插入如下(假设准备好的语句):

INSERT INTO `farmers` VALUES (NULL, ?, ?)`

然后,您从活动连接中检索“最后插入 ID”并将其放入第二个表中。

INSERT INTO `expertise` VALUES (?, ?)

要检索信息,您需要采取相反的方法。要检索所有农民,您可以使用查询

SELECT * FROM `farmers`

并且,要仅获取特定农民(假设您有 ID),您可以使用:

SELECT * FROM `farmers` WHERE ID = ?

无论您是查看所有农民还是仅查看一个农民,在评估信息时,您都将访问如下专业领域:

SELECT * FROM `expertise` WHERE farmerID = ?

这就是它的全部内容。 假设是 1:1 的关系(如“每个农民只有一个专业领域”),你也可以这样一次性写出来:

SELECT * FROM `farmers`, `expertise` WHERE ID = ? and farmerID = ID;
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板