Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/245.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MySQL使用Case语句连接_Php_Mysql_Sql_Case Statement - Fatal编程技术网

Php MySQL使用Case语句连接

Php MySQL使用Case语句连接,php,mysql,sql,case-statement,Php,Mysql,Sql,Case Statement,我在提问时遇到了点麻烦。如果遇到情况,我希望联接表。这就是我正在处理的问题。我对这些案例陈述有点陌生,因此非常感谢您的帮助 SELECT conversation.c_id, conversation.user_one, conversation.user_two, users.name, users.lastName FROM `conversation` CASE

我在提问时遇到了点麻烦。如果遇到情况,我希望联接表。这就是我正在处理的问题。我对这些案例陈述有点陌生,因此非常感谢您的帮助

      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语句中使用case语句来确定从两个表中的哪一个显示记录,从而实现类似的效果。

case
移动到
on
子句中。只需尝试一下,仍然无效:/。否,我认为你不能像现在这样使用
CASE
语句。你可能想看看动态查询。我不想在这里使用动态…他也可以在select语句中使用一对左连接和大小写,但我认为动态无法满足他的需要。是的,我明白你在第十二篇文章中说的了。它正在工作。谢谢你的帮助!
  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