回答編集履歴
6
修正
answer
CHANGED
@@ -26,7 +26,6 @@
|
|
26
26
|
where `ユーザーid`=usr.`ユーザーid`
|
27
27
|
order by rand() limit 1
|
28
28
|
) as `メッセージ登録日時`
|
29
|
-
limit 10
|
30
29
|
from `ユーザーテーブル` as usr
|
31
30
|
order by rand()
|
32
31
|
limit 10
|
5
修正
answer
CHANGED
@@ -25,12 +25,12 @@
|
|
25
25
|
select `登録日時` from `メッセージテーブル`
|
26
26
|
where `ユーザーid`=usr.`ユーザーid`
|
27
27
|
order by rand() limit 1
|
28
|
-
) as `登録日時`
|
28
|
+
) as `メッセージ登録日時`
|
29
29
|
limit 10
|
30
30
|
from `ユーザーテーブル` as usr
|
31
31
|
order by rand()
|
32
32
|
limit 10
|
33
33
|
) as v1 inner join `メッセージテーブル` msg
|
34
|
-
on v1.`ユーザーid`=msg.`ユーザーid` and v1.`登録日時`=msg.`登録日時`
|
34
|
+
on v1.`ユーザーid`=msg.`ユーザーid` and v1.`メッセージ登録日時`=msg.`登録日時`
|
35
35
|
```
|
36
36
|
|
4
追記
answer
CHANGED
@@ -5,13 +5,32 @@
|
|
5
5
|
---
|
6
6
|
試してみていませんが、上記中RAND()を使った手法で
|
7
7
|
```SQL
|
8
|
-
|
8
|
+
select *
|
9
9
|
, (
|
10
|
-
|
10
|
+
select `メッセージ` from `メッセージテーブル`
|
11
|
-
|
11
|
+
where `ユーザーid`=usr.`ユーザーid`
|
12
|
-
|
12
|
+
order by rand() limit 1
|
13
13
|
) as `メッセージ`
|
14
|
-
|
14
|
+
from `ユーザーテーブル` as usr
|
15
|
-
|
15
|
+
order by rand()
|
16
|
-
|
16
|
+
limit 10
|
17
|
-
```
|
17
|
+
```
|
18
|
+
メッセージテーブルの全体を取得したい場合は、メッセージテーブルの主キーに該当するものを取得すればいいのですが、この場合、ユーザーIDと登録日時だと思われるので、登録日時をサブクエリーで取得してさらに結合します。
|
19
|
+
|
20
|
+
```SQL
|
21
|
+
select *
|
22
|
+
from (
|
23
|
+
select *
|
24
|
+
, (
|
25
|
+
select `登録日時` from `メッセージテーブル`
|
26
|
+
where `ユーザーid`=usr.`ユーザーid`
|
27
|
+
order by rand() limit 1
|
28
|
+
) as `登録日時`
|
29
|
+
limit 10
|
30
|
+
from `ユーザーテーブル` as usr
|
31
|
+
order by rand()
|
32
|
+
limit 10
|
33
|
+
) as v1 inner join `メッセージテーブル` msg
|
34
|
+
on v1.`ユーザーid`=msg.`ユーザーid` and v1.`登録日時`=msg.`登録日時`
|
35
|
+
```
|
36
|
+
|
3
修正
answer
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
|
4
4
|
追記
|
5
5
|
---
|
6
|
-
試してみていませんが、上記
|
6
|
+
試してみていませんが、上記中RAND()を使った手法で
|
7
7
|
```SQL
|
8
8
|
SELECT *
|
9
9
|
, (
|
2
修正
answer
CHANGED
@@ -11,7 +11,6 @@
|
|
11
11
|
WHERE `ユーザーID`=usr.`ユーザーID`
|
12
12
|
ORDER BY RAND() LIMIT 1
|
13
13
|
) as `メッセージ`
|
14
|
-
LIMIT 10
|
15
14
|
FROM `ユーザーテーブル` as usr
|
16
15
|
ORDER BY RAND()
|
17
16
|
LIMIT 10
|
1
追記
answer
CHANGED
@@ -1,2 +1,18 @@
|
|
1
1
|
幾つかの手法があります。
|
2
|
-
こちら([MySQLでランダムにレコードを取得する場合の手法](http://qiita.com/iri/items/b82795b6a3c0a8df62a5))が参考になるかと。
|
2
|
+
こちら([MySQLでランダムにレコードを取得する場合の手法](http://qiita.com/iri/items/b82795b6a3c0a8df62a5))が参考になるかと。
|
3
|
+
|
4
|
+
追記
|
5
|
+
---
|
6
|
+
試してみていませんが、上記でRAND()を使った手法で
|
7
|
+
```SQL
|
8
|
+
SELECT *
|
9
|
+
, (
|
10
|
+
SELECT `メッセージ` FROM `メッセージテーブル`
|
11
|
+
WHERE `ユーザーID`=usr.`ユーザーID`
|
12
|
+
ORDER BY RAND() LIMIT 1
|
13
|
+
) as `メッセージ`
|
14
|
+
LIMIT 10
|
15
|
+
FROM `ユーザーテーブル` as usr
|
16
|
+
ORDER BY RAND()
|
17
|
+
LIMIT 10
|
18
|
+
```
|