Кто нибудь объяснит что хотел разработчик - MySQL

Узнай цену своей работы

Формулировка задачи:

Я не могу понять что эта функция делает (разбираюсь в чужом "движке"), а еще я не понимаю что за прифексы M и S около название полей.... Просто что за бред зачем их так перечислять объясните мнеее
public function Friends_Updates($uid, $lastid, $lastmid, $lastsid) {
  $moresharequery = "";
  if ($lastsid) {
       $moresharequery = " and S.share_id > '" . $lastsid . "' ";
   }
 
  /* More Button*/
  $morequery="";
  if($lastid) {
      //build up the query
      $morequery=" and M.msg_id<'".$lastid."' ";
   }
   if($lastmid) {
      //build up the query
      $morequery=" and M.msg_id>'".$lastmid."' ";
   }
    $data = null;
    /*More Button End*/
    $v=mysqli_query($this->db,"SELECT share_id FROM message_share") or die(mysqli_error($this->db));
    if(mysqli_num_rows($v)) {
       //The query to select friend messages
       $query=mysqli_query($this->db,"(SELECT DISTINCT 
             M.msg_id,
             M.uid_fk,
             M.shared_uid_fk,
             M.shared_msg_id_fk,
             M.last_shared_uid_fk,
             M.message,
             M.hide_show_comment,
             M.hide_show_share,
             M.postPrivacy,
             M.lovedPost,
             M.hashTag,
             M.share_count,
             S.created,
             M.like_count,
             M.comment_count,
             U.username,
             M.uploads,
             S.uid_fk AS share_uid,
             S.ouid_fk AS share_ouid
             FROM 
             messages M
             JOIN message_share S ON M.msg_id = S.msg_id_fk
             JOIN friends F ON F.friend_two = S.uid_fk OR S.uid_fk = '$uid'
             JOIN users U ON S.ouid_fk = U.uid
             WHERE 
             F.friend_one='$uid'
             AND U.uid != F.friend_one 
             AND U.status='1'
             AND F.role='fri'
             $moresharequery
             )
             UNION
             (SELECT DISTINCT 
             M.msg_id,
             M.uid_fk,
             M.shared_uid_fk,
             M.shared_msg_id_fk,
             M.last_shared_uid_fk,
             M.message,
             M.hide_show_comment,
             M.postPrivacy,
             M.hide_show_share,
             M.lovedPost,
             M.hashTag,
             M.share_count,
             M.created,
             M.like_count,
             M.comment_count,
             U.username,
             M.uploads,
             '0' AS share_uid,
             '0' AS share_ouid
             FROM 
              messages M 
              JOIN users U ON M.uid_fk = U.uid
              JOIN friends F ON M.uid_fk = F.friend_two
             WHERE 
              F.friend_one='$uid'
              AND U.status='1'
            $morequery ) order by created desc limit " .$this->perpage) or die(mysqli_error($this->db)); 
       } else {    
          $query = mysqli_query($this->db,"SELECT DISTINCT M.msg_id, M.uid_fk,M.shared_uid_fk,M.shared_msg_id_fk,M.last_shared_uid_fk, M.message,M.hide_show_comment,M.postPrivacy,M.hide_show_share,M.lovedPost,M.hashTag,M.like_count,M.comment_count, M.created,U.username,M.uploads FROM messages M, users U, friends F  WHERE U.status='1' AND M.uid_fk=U.uid AND  M.uid_fk = F.friend_two AND F.friend_one='$uid' $morequery order by M.msg_id desc limit " .$this->perpage) or die(mysqli_error($this->db));
       }
        //Store the result
        while($row=mysqli_fetch_array($query)) {
            // Store the result into array
            $data[]=$row;
            }
             if(!empty($data)) {
               // Store the result into array
               return $data;
            }  
}

Решение задачи: «Кто нибудь объяснит что хотел разработчик»

textual
Листинг программы
SELECT T1.id AS Id1, T2.id AS Id2

Объяснение кода листинга программы

  1. T1 - это таблица или представление данных, которое содержит столбец id.
  2. T2 - это таблица или представление данных, которое также содержит столбец id.
  3. Id1 - это псевдоним для столбца id из таблицы или представления данных T1.
  4. Id2 - это псевдоним для столбца id из таблицы или представления данных T2.
  5. SELECT - это оператор, который используется для выбора данных из одной или нескольких таблиц или представлений.
  6. AS - это оператор, который используется для создания псевдонима для столбца или выражения в запросе.
  7. Id1, Id2 - это псевдонимы, которые используются в запросе для обозначения выбранных столбцов.
  8. В данном случае, запрос выбирает столбцы id из таблиц или представлений T1 и T2.
  9. Запрос возвращает два столбца: Id1 и Id2, которые являются псевдонимами для столбцов id из таблиц или представлений T1 и T2 соответственно.
  10. Ваш запрос не содержит оператора FROM, поэтому мы не можем точно сказать, откуда берутся данные. Вероятно, это опечатка или пропущенная часть запроса.
  11. Ваш запрос также не содержит оператора WHERE, который обычно используется для фильтрации данных.
  12. Ваш запрос возвращает только столбцы Id1 и Id2, поэтому мы не знаем, какие другие данные могут быть включены в результат.
  13. Ваш запрос не содержит оператора GROUP BY или HAVING, поэтому мы не можем сказать, как данные будут сгруппированы или отфильтрованы.
  14. Ваш запрос не содержит оператора ORDER BY, поэтому мы не можем сказать, как данные будут отсортированы.
  15. Ваш запрос не содержит оператора LIMIT, поэтому мы не можем сказать, сколько строк будет возвращено.
  16. Ваш запрос не содержит оператора INTO, поэтому мы не знаем, куда будут сохранены результаты.
  17. Ваш запрос не содержит оператора JOIN, поэтому мы не можем сказать, как таблицы будут объединены.
  18. Ваш запрос не содержит оператора SUBQUERY, поэтому мы не можем сказать, есть ли вложенные запросы.
  19. Ваш запрос не содержит оператора DISTINCT, поэтому мы не можем сказать, какие данные будут уникальными.
  20. Ваш запрос не содержит оператора UNION, поэтому мы не можем сказать, какие другие запросы могут быть объединены с этим.

Оцени полезность:

5   голосов , оценка 4.2 из 5
Похожие ответы