php - MySQL 加入案例语句

标签 php mysql sql case-statement

我在查询时遇到了一些问题。如果遇到情况,我想加入表格。这是我正在处理的查询。我对这些案例陈述有点陌生,所以非常感谢任何帮助!

      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

最佳答案

不要对整个内部连接进行大小写,只对连接中的“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 语句来确定显示两个表中的哪一个的记录。

关于php - MySQL 加入案例语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25453762/

相关文章:

javascript - 使用 javascript 将 DOM 对象发送到 PHP 服务器

PHP连接mysql服务器数据库

sql - 选择日期为工作日的行

php - find(), findOrFail(), first(), firstOrFail(), get(), list(), toArray() 有什么区别

javascript - Ajax从数据库中删除数据功能不起作用

php - laravel上传的图片未添加到数据库

php - 连接 3 个表并匹配空条目

php - 使用第三方应用程序(phpmyadmin、TOAD 等)在 mysql 中创建表与使用 php 相比更好吗?

mysql - 为 MySQL 中的临时表授予选择

sql - Oracle 更新更新 NULL 而不是值?