3

私はそのような2つのテーブルを持っています

subscribers

id    subscriber     subscribe_to
1       user1          user2
2       user2          user3
3       user1          user2
4       user3          user4
5       user1          user2
6       user1          user7
7       user5          user2
8       user8          user9
9       user1          user10

そして、私の他のテーブルは次のようになります: main

id    by_user      post_name
1     user1        somename1
2     user2        somename2
3     user1        somename3
4     user3        somename4
5     user3        somename5
6     user1        somename6
7     user2        somename7
8     user3        somename8

php-mysql を使用して、テーブル 1 から (たとえば) user1 のすべてのサブスクリプションを取得したいと考えています。次に、テーブル 2 から共通名を取得しますが、2 番目のテーブルを取得する方法がわかりません。

$get_subscriptions = mysql_query("SELECT * FROM `subscribers` WHERE `subscriber` = 'user1'");
if(mysql_num_rows($get_subscriptions) == 1){
$fetch = mysql_fetch_assoc($get_subscriptions);
$subscriptions = $fetch['subscribe_to'];//this will return an array with all the subscribed to users by user1
} 

ここで、2 番目のテーブルをフェッチして、すべての post_name ($subscriptions から) を取得したいと考えています。クエリの書き方がわかりません。

$get_posts= mysql_query("SELECT * FROM `main` WHERE....");
4

2 に答える 2

3

これを試して:

SELECT post_name FROM main 
WHERE by_user = 'user1' OR by_user IN (SELECT subscribe_to FROM subscribers WHERE subscriber = 'user1')
于 2012-12-26T06:08:48.413 に答える
0
$get_posts = mysql_query("SELECT * FROM `main` WHERE by_user IN ('" . implode("', '", $subscriptions) . "')");
于 2012-12-26T06:20:11.200 に答える