使用多个语句从另一个表中获取id

时间:2018-04-02 12:57:13

标签: php sql database

我对编程很陌生,在尝试将数据从SQL数据库导入PHP网站时遇到了一些问题。 我将制作与下面的场景非常相似的内容。

我们的表格包括:

宠物

pet_id      pet_type    

  1            cat                     
  2            dog           
  3          rabbit                   

pet_symptoms

symptom_id       symptom        

  1          not playing         
  2          not eating
  3          not sleeping
 ...

ACTION_CALL

call_id      advice         

  1       take to vet         
  2       change food
  3       give a shower
 ...

我需要我的最后一页从第一页和第二页提取会话数据以获得(1)宠物的问题和(2)宠物是什么,以便(3)给出正确的建议。

这是我在第3页的SQL - 调用vet

$rows=$db->query("SELECT call_id, advice pet_id, symptom_id, symptom, pet_type
        FROM pets, pet_symptoms, call_vet
        WHERE pets.pet_id = pet_symptoms.pet_id
        AND pets.pet_type='$_SESSION[pet_type]'
");

我遇到的问题是我想在第二页上看到问题是文本而不是id,所以我不确定如何根据所选问题匹配不同表中的ID。

感谢您的帮助

编辑:

所以看起来像

   id          pet_type                pet_symptom
    1            cat                  not sleeping
    2            dog                  not sleeping

.....

1 个答案:

答案 0 :(得分:0)

CREATE TABLE Pet_health
(Pet_id number(3),
Pet_name Varchar2(15,)
Symptom_id number(3),
Call_id number(3))

创建此表。这个表将从另外3个表中获取信息, 您不必更新宠物,宠物症状和动作呼叫表,除非您想添加新类型的宠物,新症状和新建议。不要添加重复项。

现在宠物健康可以解决所有宠物的健康问题

完成后,您可以使用此SELECT查询

SELECT P.pet_type, PH.pet_name, S.symptom, A.advice  
FROM Pet_Health PH
INNER JOIN Pets P
ON PH.pet_id =P.pet_id
INNER JOIN Symptom S
ON PH.symptom_id = S.symptom_id
INNER JOIN Action_call A
ON PH.call_id = A.call_id

此查询将显示所有内容。如果要显示ID,可以在SELECT语句

中添加