首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >显示具有多个值的唯一列名称

显示具有多个值的唯一列名称
EN

Stack Overflow用户
提问于 2012-06-19 03:56:53
回答 1查看 140关注 0票数 1

我有一个连接两个表的查询

代码语言:javascript
复制
SELECT DISTINCT prescriptions.prescription, prescription_history.dosage
FROM prescriptions
LEFT OUTER JOIN prescription_history ON prescriptions.prescription=prescription_history.prescription

现在,处方表有两个字段主键和处方名称,prescription_history有4个字段,其中处方名称是处方的外键。为了让这一点更清楚。

代码语言:javascript
复制
Prescriptions table:
id   prescription
1    advair
..   ....

诸若此类

代码语言:javascript
复制
Prescription_History
id   prescription   account_num   dosage
1    advair         989           20mcg
2    advair         567           50mcg
..   ...            ...           ...

诸若此类。

如果我将其输出到创建复选框中,我希望看到处方名称后面跟着剂量:

代码语言:javascript
复制
Advair   Symbicort
20mcg    140/4.5
50mcg    120/4.5

诸若此类

但是,取而代之的是,我得到了两次处方名称,然后是剂量。

代码语言:javascript
复制
Advair  Advair   Symbicort   Symbicort
20mcg   50mcg    140/4.5     120/4.5  

诸若此类

如何能够显示处方名称一次,然后显示该处方的所有剂量。我尝试使用array_unique,但它只会输出一个处方名称,后跟剂量,并忽略所有其他处方名称,即使它们不相同

EN

回答 1

Stack Overflow用户

发布于 2012-06-19 04:13:59

听起来您想要做的是将这两个表连接起来,然后迭代它们,找到处方的每个唯一实例,并找到与之对应的每个剂量。可以这样做的一种方法是使用一个数组,将处方作为唯一的关键字,然后与每个处方对应的剂量/处方历史记录。所以你可以这样做(未测试):

代码语言:javascript
复制
$sql = "SELECT DISTINCT prescriptions.prescription, prescription_history.dosage, prescription_history.account_num FROM prescriptions LEFT OUTER JOIN prescription_history ON  rescriptions.prescription=prescription_history.prescription"
$result = mysql_query($sql) or die("MySQL-Error: " . mysql_error());
$arr = array();
while ($new = mysql_fetch_row($result)) {
      if (array_key_exists($new[0], $arr)) {
           array_push($arr[$new[0]], array($new[1], $new[2]));

      } else {
           $arr[$new[0]] = array();
           array_push($arr[$new[0]], array($new[1], $new[2]));
      }
 }  

之后,您可以使用foreach循环对其进行迭代:

代码语言:javascript
复制
foreach ($arr as $key) {
    print "Prescription: " . $key
    foreach($key as $value) {
        print_r$value;
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11090107

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档