如何使用PHP中的PDO使用PDO从子表中获取信息?

时间:2014-05-07 02:42:30

标签: php sql

如何从子表中获取信息(通过父表),该子表使用引用父项的外键。

例如:

表: user_list (父级)

-----------------------------
first_name | Last Name | ID |
-----------------------------
   john    | Appleseed |  4 |
           |           |    |

表: user_info :(孩子)

----------------------------------------------
     email         |  password | userlist_ID |
----------------------------------------------
jappleseed@me.com  |   ******* |       4     |

让我们说John Appleseed的信息存储在一个数组中:

$johnsInfo;

如何从user_info表中检索John的电子邮件?

我正在尝试这个atm:

db->query("SELECT * FROM user_info WHERE userlist_ID = :ID", $johnsInfo);

不确定这是否是正确的做事方式。

2 个答案:

答案 0 :(得分:2)

如果这是一个真实的例子,你应该把这两个表放到一个表中。通常,如果表格具有1:1的对应关系,则应将它们放在一起(但是,有些特殊情况则不应该)。

无论如何,你想要做的事情如下:

SELECT ul.*, ui.* FROM user_list ul
LEFT JOIN user_info ui
  ON ui.userlist_ID=ul.ID
WHERE ul.ID = :ID

有不同种类的连接。查看MySQL文档(http://dev.mysql.com/doc/refman/5.0/en/join.html)或搜索“数据库连接”之类的内容,找出哪一个最终会为您工作。

答案 1 :(得分:1)

这是您需要的SQL

SELECT user_list.ID
      ,user_list.first_name
      ,user_list.last_name 
      ,user_info.email
      ,user_info.password           
FROM user_list 
INNER JOIN user_info
ON user_list.ID = user_info.userlist_ID 
WHERE user.ID = :ID