mySQL:使用另一个表中的id显示来自一个表的数据

时间:2012-06-13 11:20:10

标签: php mysql database

我希望我的用户能够制作收藏列表。

我在mySQL的数据库中有两个表。一个存储有关企业的信息,另一个存储唯一用户ID以及用户标记为收藏夹的第一个表中的ID。

表1

<pre>
ID   | NAME | EMAIL      | PHONE    |
1    | Joe  | a@mail.com | 25634565 |
2    | John | b@mail.com | 43634565 |
3    | Jack | c@mail.com | 65634565 |
4    | James| d@mail.com | 43634565 |
5    | Julie| e@mail.com | 65634565 |
...
</pre>
表2
<pre>
  USERID   |  FAV1  |  FAV2  |  FAV3  | FAV...
2565325489 | 1      | 3      | 5      |
8596854785 | 3      | 2      | NULL   |
2356256263 | 5      | NULL   | NULL   |
...
</pre>
我想要的用户输出(在本例中是table2中的第一个):
<pre>
Joe  | a@mail.com | 25634565 |
Jack | c@mail.com | 65634565 |
Julie| e@mail.com | 65634565 |
</pre>

我已经查看了JOIN LEFT和minus查询调用,但我无法使其工作。我对mySQL和PHP有基本的了解,但不是很多。

我非常感谢您采取何种方法。

聚苯乙烯。如果有更好的方法来构建我的数据库,我很想知道。

3 个答案:

答案 0 :(得分:2)

我使用包含两个字段的表 - userIDfav - 为每个条目创建一个条目。然后......

SELECT table1.name, table1.email, table1.phone FROM table1,table2 WHERE table2.fav = table1.id AND table2.userid = 2565325489

答案 1 :(得分:0)

$result = mysqli_query('SELECT name,email,phone FROM t1 table1 LEFT JOIN table2 t2 ON t1.ID = t2.fav1');  

//iterate the results
while ($row = mysqli_fetch_array($result))
{
    echo $row['name']." ".$row['email']." "$row['phone'];
}

答案 2 :(得分:0)

Select * from table1 InnerJoin (Select * from table2) as t4 on table1.ID=t4.FAV1