从此表中选择一行,从其他表中选择所有相关行

时间:2011-02-02 18:59:35

标签: mysql

表用户

id |名字|地址

3 | Jacko | 33A Herewini

表user_photo

id | userid |拇指|全

1 | 3 | 3k1j_thumb.jpg | 3k1j.jpg

1 | 3 | 3k1j_thumb.jpg | 3k1j.jpg

2 | 14 | 44r_thumb.jpg | 44r.jpg

2 | 14 | 55t_thumb.jpg | 55t.jpg

2 | 14 | 12f_thumb.jpg | 12f.jpg

我收到了用户名,我想选择他的姓名和地址以及他所有的照片

PS:用于绘制表格线的工具/软件(+ --- +)?

编辑:那你怎么把这个名字放在一个div中,所有的照片都放在ul

我的HTML看起来像这样

<div class='name'></div>

...600 elements...

<ul class='photos'></ul>

3 个答案:

答案 0 :(得分:1)

要获取地址,您只需查询该表:

   SELECT * FROM user WHERE id = 3

要获取照片,您可以查询用户照片表:

   SELECT * FROM user_photo WHERE userid = 3

如果您想一次性获取所有内容,可以将两个表一起加入用户ID:

   SELECT * FROM user u
   LEFT JOIN user_photo up ON up.userid = u.id
   WHERE u.id = 3

请注意,地址信息当然会在每一行重复

答案 1 :(得分:1)

了解LEFT JOIN,请参阅例如http://www.postgresql.org/docs/8.2/static/sql-select.html

SELECT * FROM user AS u LEFT JOIN user_photo AS p ON p.userid = u.id

根据需要进行调整。

答案 2 :(得分:0)

要合并由一列链接的两个表的结果(在本例中为id),您将使用JOIN

您可以在MySQL Reference Manual

中阅读JOIN
SELECT *
FROM   user u
       LEFT OUTER JOIN user_photo up ON up.userid = u.id