2

ユーザーがお気に入りリストを作成できるようにしたい。

mySQL のデータベースに 2 つのテーブルがあります。1 つはビジネスに関する情報を保存し、もう 1 つは一意のユーザー 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 とマイナスのクエリ呼び出しを調べましたが、うまくいきません。mySQL と PHP の基本的な知識はありますが、それほど多くはありません。

どのようなアプローチを取るべきかについての助けをいただければ幸いです。

Ps。データベースを構築するためのより良い方法があれば、ぜひ知りたいです。

4

3 に答える 3

2

userID2 つのフィールドを持つテーブルを使用し、favエントリごとに 1 つのエントリを作成します。その後...

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

于 2012-06-13T11:28:19.133 に答える
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'];
}
于 2012-06-13T11:23:30.070 に答える
0
Select * from table1 InnerJoin (Select * from table2) as t4 on table1.ID=t4.FAV1
于 2012-06-13T11:23:35.313 に答える