admin

MySQL加入案例陈述

sql

我在查询时遇到了麻烦。如果遇到问题,我想加入表格。这是我正在使用的查询。我是这些案例陈述的新手,因此非常感谢您的帮助!

      SELECT 
        conversation.c_id,
        conversation.user_one,
        conversation.user_two,
        users.name,
        users.lastName
      FROM `conversation`

      CASE
        WHEN conversation.user_one = 1
        THEN
          INNER JOIN `users`
          ON conversation.two = users.id

        WHEN conversation.user_two = 1
        THEN
          INNER JOIN `users`
          ON conversation.user_one = users.id
      END CASE

      WHERE `user_one` = 1 OR `user_two` = 1

阅读 181

收藏
2021-07-01

共1个答案

admin

不要对整个内部联接进行大小写处理,仅对联接中的“ on”子句进行大小写处理。这应该工作(除非我有错别字):

  SELECT 
    conversation.c_id,
    conversation.user_one,
    conversation.user_two,
    users.name,
    users.lastName
  FROM `conversation` 
  INNER JOIN `users`
  on
  users.id =
  CASE
    WHEN conversation.user_one = 1
    THEN conversation.two 
    WHEN conversation.user_two = 1
    THEN conversation.user_one   
 END
 WHERE `user_one` = 1 OR `user_two` = 1

您还可以通过在这些条件中的每个条件上左键连接,然后在select语句中使用case语句来确定要从中显示记录的两个表中的哪一个来获得类似的效果。

2021-07-01