Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.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
mysql连接-选择col1,其中col2与其他表中的(过滤的)col匹配_Mysql_Join - Fatal编程技术网

mysql连接-选择col1,其中col2与其他表中的(过滤的)col匹配

mysql连接-选择col1,其中col2与其他表中的(过滤的)col匹配,mysql,join,Mysql,Join,以下是我想做的: 选择tableB.column1,其中tableB.column2=some\u var 选择tableA.column1,其中tableA.column2是第一步的结果。 这可以在一次选择中完成吗?最好的方法是什么,尤其是在性能方面?我正在使用PHP 编辑: 我有一个基于对话的消息传递系统。1conva表和1回复表。答复表包括以下列:响应者和车队id。要加载车队,我会得到所有带有车队id的回复 我想使用ConveId将所有响应者发送到该车队,然后进入usertable并选择响

以下是我想做的:

  • 选择tableB.column1,其中tableB.column2=some\u var

  • 选择tableA.column1,其中tableA.column2是第一步的结果。

  • 这可以在一次选择中完成吗?最好的方法是什么,尤其是在性能方面?我正在使用PHP

    编辑: 我有一个基于对话的消息传递系统。1
    conva表
    和1
    回复表
    。答复表包括以下列:
    响应者和车队id
    。要加载车队,我会得到所有带有车队id的回复

    我想使用ConveId将所有响应者发送到该车队,然后进入usertable并选择响应者的所有化身,然后将化身存储在数组中,并根据需要将其回显。

    尝试以下操作:

    select a.Column1 
    FROM tableA a 
    LEFT JOIN tableB b ON a.Column2 = b.Column1 
    

    您也可以使用子查询,但性能较差。

    您可能需要尝试以下sql语句

    SELECT u.avatar
    FROM usertable u
    JOIN replies r ON u.responder_id = r.responder_id
    WHERE r.convo_id = 1234
    

    这将获得id为1234的所有参与对话的用户的头像。以下是我决定使用的头像。它构建了一个数组($avatars),其中键是用户名,值是avatar

    $result = mysql_query("SELECT 
        DISTINCT users.avatar,replies.sender 
        FROM users 
        JOIN replies 
        ON users.username = replies.sender 
        WHERE replies.convo_id = '$convoID'
    ");
    while($array = mysql_fetch_assoc($result)){
        $avatars[$array['sender']] = $array['avatar'];
    }
    

    我想多了解一点情况会有帮助的。真的取决于A依赖什么。谢谢大家的回答。这个答案适合我,因为它使用了车队id上的where。我还将使用DISTINCT和select,因为我将重用同一用户的化身。您使用的速记是什么?“用户表u”。这是为了性能还是仅仅为了可读性?谁能帮我把上面的文件链接一下吗。我不知道它叫什么。我相信它们叫别名。我认为它们不会影响性能,但通常用于可读性,因为表名可以是非描述性的,也可以是很长的。正如您正确指出的,DISTINCT将是必要的,因为我的SQL语句将给出重复的avatars.COVAID是一个十六进制字符串,引号中也是如此。我说我只是从一个专栏中挑选,这是误导。我没有意识到。