【问题标题】:MySQL: A simple, but odd "join" between two tablesMySQL:两个表之间的简单但奇怪的“连接”
【发布时间】:2021-11-18 12:51:10
【问题描述】:

这太简单了,我不好意思问这个问题:

我正在尝试返回单行,其中包含来自表 A 的列的一个元素和来自表 B 的列的一个元素,随机选择。我从来没有做过这样的事情,我很难过。两个表之间没有关系(故意)。我可以单独发出命令并得到我想要的,但我不能将它们放在一个查询中。两个查询之间的 UNION (我的第一个想法)导致两行,但我想要一行。有什么想法吗?

    (SELECT column_a FROM table_x ORDER BY rand() LIMIT 1) 
       UNION
    (SELECT column_b FROM table_y ORDER BY rand() LIMIT 1)


    DESIRED OUTPUT:
                  column_a        column_b
                  ---------------------------
    Row 1:        x.element_a     y.element_b

每个单独的查询都按预期执行(尽管代价高昂)。在没有任何公共密钥的情况下加入两者是问题所在。

【问题讨论】:

    标签: mysql random


    【解决方案1】:

    使用两个子查询应该可以工作:

    SELECT
      (SELECT column_a FROM table_x ORDER BY rand() LIMIT 1) AS colA
      (SELECT column_b FROM table_y ORDER BY rand() LIMIT 1) AS colB
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-06
    • 2016-05-07
    • 1970-01-01
    • 1970-01-01
    • 2010-12-17
    相关资源
    最近更新 更多