我希望為表 2 中的每個班級-教師對在表 1 中提取 2 個隨機學生姓名。我考慮使用
表格1
| 班級 | 老師 |
|---|---|
| 數學 | 史密斯先生 |
| 數學 | 金太太 |
| 科學 | 史密斯先生 |
| 科學 | 金太太 |
表 2
| 學生 |
|---|
| 馬特 |
| 杰斯 |
| 湯姆 |
| 莎莉 |
| 桿 |
| 尼基 |
最后的例子
| 班級 | 老師 | 學生 |
|---|---|---|
| 數學 | 史密斯先生 | 馬特 |
| 數學 | 史密斯先生 | 莎莉 |
| 數學 | 金太太 | 尼基 |
| 數學 | 金太太 | 桿 |
| 科學 | 史密斯先生 | 馬特 |
| 科學 | 史密斯先生 | 杰斯 |
| 科學 | 金太太 | 湯姆 |
| 科學 | 金太太 | 桿 |
uj5u.com熱心網友回復:
您可以使用RANDOM()隨機排序行,然后選擇前兩個。
例如:
select
a.*, x.*
from table1 a,
lateral (
select *
from table2
order by length(a.class) * 0 random()
limit 2
) x
結果:
class teacher student
-------- ---------- -------
Math Mr. Smith Matt
Math Mr. Smith Jess
Math Mrs. Kim Nikki
Math Mrs. Kim Rod
Science Mr. Smith Rod
Science Mr. Smith Jess
Science Mrs. Kim Tom
Science Mrs. Kim Jess
請參閱DB Fiddle 上的運行示例。請注意,每次運行查詢時結果都會發生變化。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/376032.html
標籤:sql 数据库 PostgreSQL的
上一篇:Symfony、Doctrine和createNativeQuery
下一篇:使用約束運行資料庫創建腳本
