1

私は2つのMySQLテーブルを持って います.username、lastSeen、currentOnlineの列を含むセッションと、username、userLocation、userAgeの列 を 含むユーザーです。

現在オンラインのユーザーの情報 ( userLocation、userAge ) を選択する必要があります (currentOnlineが 1 の場合)。セッションテーブルからユーザー名を選択してから、別のクエリでループ内の情報を選択することを考えていましたが、もっと簡単な解決策があるでしょうか?

ご意見をお待ちしております:)

4

4 に答える 4

0

ここで結合を使用します。ここから、username は、users テーブルを持つ session テーブルの forignkey であることがわかります。その場合は、このクエリを使用してください。

select  userLocation, userAge from users as u JOIN session as s ON u.username = s.username AND s.currentlyOnline = 1 

foriegnkey を 1 つのテーブルの整数および主キーとして使用することをお勧めします。ここで、users テーブルで id を primarykey として保持し、user_id を session テーブルで forignkey として保持し、それを使用して結合すると、すばらしいでしょう。

于 2013-06-10T16:09:04.063 に答える
0

JOIN を使用できます。例: SELECT userLocation, userAge FROM users INNER JOIN session ON users.username = session.username WHERE session.currentlyOnline = 1

于 2013-06-10T16:08:17.887 に答える
0

結合はそれを完全に行います:

SELECT users.userLocation, users.userAge, users.username
FROM users
JOIN session ON users.username = session.username
WHERE session.currentlyOnline = '1'
于 2013-06-10T16:08:40.190 に答える
0

結合を使用...

SELECT u.userLocation, u.userAge, u.username
FROM users u, session s
WHERE u.username = s.username
AND s.currentlyOnline = ?

値は、オンラインであることを意味します...ユーザー名も選択に追加しました。おそらく、これとその?ばかげた別のクエリを実行したいからです。

于 2013-06-10T16:04:25.567 に答える