【问题标题】:duplicates in mysql full joinmysql完全连接中的重复项
【发布时间】:2019-11-21 12:21:13
【问题描述】:

我有两个表,我想把它们放在一起,不想获得相同的 id,而是让行具有值而不是空值 - 如果有一个带值的 id。

这是我的查询

(SELECT users_antworten.user,
        users_antworten.antwort,
        profilfragen.id,
        profilfragen.frage,
        profilfragen.status,
        profilfragen.aktiviert
    FROM users_antworten

    right JOIN profilfragen ON users_antworten.frage = NULL
    WHERE profilfragen.aktiviert = 1 
    group by profilfragen.id
)
UNION               
(SELECT users_antworten.user,
        users_antworten.antwort,
        profilfragen.id,
        profilfragen.frage,
        profilfragen.status,
        profilfragen.aktiviert
 FROM users_antworten
 LEFT JOIN profilfragen ON users_antworten.frage  = profilfragen.id
 WHERE   profilfragen.aktiviert = 1 AND users_antworten.user = 6 
 group by profilfragen.id
)

谢谢!

【问题讨论】:

  • 听起来你想要INNER JOIN,而不是FULL JOIN
  • 不,我不这么认为。我想要这个结果: 6 。 1 啦啦啦 1 。 1.帧 1 null null 。空 2 。片段 2 6 。 3.答案 3 . 3.片段 3 等等
  • 您能否将表格添加为文本(我们可以使用)而不是图像(我们不能使用)
  • 如果您不使用聚合函数,请不要使用 group by -DISTINCT 可能是合适的
  • 尝试了不同但不起作用

标签: mysql outer-join


【解决方案1】:

下班后终于 :-) 我明白了:

            (select null as user,
                null as antwort,
                p.id,
                p.frage,
                p.status,
                p.aktiviert
                FROM profilfragen p


                WHERE not exists
                ( SELECT null
                    FROM users_antworten u
                    WHERE u.frage = p.id AND u.user=6
                )
            )

            UNION

            (SELECT u.user,
                u.antwort,
                p.id,
                p.frage,
                p.status,
                p.aktiviert
                FROM users_antworten u left join profilfragen p on p.id = u.frage  WHERE u.user= :id
            )

【讨论】:

    猜你喜欢
    • 2011-12-26
    • 1970-01-01
    • 2011-12-20
    • 2016-09-13
    • 1970-01-01
    • 2017-06-10
    • 2013-03-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多