Как я могу сравнить разные столбцы разных строк в одной таблице MySQL (в php)?

Я пытаюсь сравнить столбец A строки A со столбцом B строки B. Как я могу сделать это в php?

Это код, который у меня есть:

<?php

include("include/config.php");
include("include/functions/import.php");

$addToFriends = array();
$atf = 0;

//connect to mysql and get data for main user
mysql_connect($DBHOST,$DBUSER,$DBPASSWORD);
mysql_select_db($DBNAME);

//grabs all friend requests sent by user
$sql = "SELECT * FROM friends_requests WHERE REQUESTER = '.$_SESSION[USERID].' ";
$q = mysql_query($sql) or die(mysql_error());

$ar1 = array();
$RIDs = array();
$i=0;
while($row = mysql_fetch_array($q))
{
$ar1[] = $row[2];
$RIDs[] = $row[0];
echo "ar1".$ar1[$i];
$i++;
}

//grabs all friend requests sent to user
$sql = "SELECT * FROM friends_requests WHERE REQUESTEE = '.$_SESSION[USERID].' ";
$q = mysql_query($sql) or die(mysql_error());


$ar2 = array();
$i=0;
while($row = mysql_fetch_array($q))
{
$ar2[] = $row[1];
echo "ar2".$ar2[$i];

$i++;
}


    for($int = 0; $int < sizeof($ar1); $int++)
    {

        for($t = 0; $t < sizeof($ar2); $t++)
        {

            if($ar1[$int] == $ar2[$t])
            {
            $sql = "SELECT * FROM friends_requests WHERE RID = '.$RIDs[$int].' ";
$q = mysql_query($sql) or die(mysql_error());
while($row = mysql_fetch_array($q))
{
            echo "lookie".$row[1];
            echo "lookie".$row[2];
            echo "/".$t;
            echo "/".$int;
                mysql_query("INSERT INTO friends (USERID,FRIENDID,time_added) VALUES ($row[1],$row[2],NOW())");
                mysql_query("INSERT INTO friends (USERID,FRIENDID,time_added) VALUES ($row[2],$row[1],NOW())");
                mysql_query("DELETE FROM friends_requests WHERE REQUESTER = $row[1] AND REQUESTEE = $row[2]");
                mysql_query("DELETE FROM friends_requests WHERE REQUESTER = $row[2] AND REQUESTEE = $row[1]");
                echo "make friends".$row[1]."b/w".$row[2];  }
            }

        }

    }


?>

цель состоит в том, чтобы найти две строки из всех, где ColumnA, RowA = ColumnB, RowB


person babycakes    schedule 30.03.2011    source источник


Ответы (1)


Это потребует самостоятельного присоединения. Предполагая (из вашего кода), что столбец A является запрашивающим, а столбец B - запрашиваемым. См. следующий пример, чтобы получить все записи из сравнения. Настройте и добавьте дополнительные фильтры в запрос в соответствии с вашими требованиями.

select a.*,b.* from friends_requests a, friends_requests b 
where a.requester = b.requestee
person Rahul    schedule 30.03.2011