【发布时间】:2014-01-02 19:59:07
【问题描述】:
我一直在努力寻找正确的方法来提取我需要的数据。我将 MySQL 与 PHP 一起使用,并将数据放入列表格式。我唯一的问题是实际查询本身。以下是数据库的设置方式:
我有一个 'chars' 表,其中包含 'id'、'descrip' 和 'class' 列的特征。
我有一个 'animal' 表,其中包含 'animal_id'、'charlist' 等列...
在 'chars' 中,id 是递增的 int,'descrip' 和 'class' 是文本/字符串。
'id' 和 'descrip' 对于每一行都是不同的,但 'class' 有时会是相同的,它们具有像 'habitat'、'size'、'diet' 等的值。
我想要的是一个如下所示的列表:
-
栖息地
- 地下
- 北极
-
饮食
- 鱼
- 昆虫
- 杂食动物
这就是我开始遇到麻烦的地方。在“详细信息”页面上,我显示了特定于某种动物的所有数据(无论单击哪个),并引用每个动物在数据库中具有自己的“charlist”值的“特征”。此值是引用“chars”表的数字字符串,例如“2,55,67,90,122”。
因此,我已将所有(特定)动物数据提取到页面上的一个 php 变量中,我想提供这些信息。现在我需要使用该动物的“charlist”数据来查找并列出与该动物相关的特征。
我的查询看起来像这样,我知道我已经离开了:
SELECT * FROM 'chars' LEFT INNER JOIN 'animals' ON chars.id IN (animals.charlist) WHERE ...
我尝试了很多不同的方法,这就是我迷路的地方。我的大脑告诉我加入表格,找到字符列表中的数字 WHERE animal.animal_id = mysql_real_escape_string($animal_id) - 当然 MySQL 告诉我我不能这样做。
我知道对于列表的标题,我可能必须使用 GROUP BY 条件来执行此操作。
查询和查询语法的任何帮助都会很棒。我对 MySQL 还很陌生,我很高兴也很想学习如何正确地做到这一点。
感谢阅读。
【问题讨论】: