Sql 连接两个表一个表有多个与第一个表的行匹配的行

Sql 连接两个表一个表有多个与第一个表的行匹配的行,sql,postgresql,join,Sql,Postgresql,Join,我遇到了这样一种情况:我有两个表,一个表的id为PK,另一个表的id为PK,另一个表的时间戳、状态和id为PK。当表1的id与表2的id匹配时,我想从表1中选择所有唯一的行 例如: 表1 ---id------时间戳------状态------col3--- ……111…………2017-10-05 10:42:23…………K ……111…………2017-10-05 12:42:23…………X ……111…………2017-10-05 18:42:23…………Y ……222…………2017-10-0

我遇到了这样一种情况:我有两个表,一个表的id为PK,另一个表的id为PK,另一个表的时间戳、状态和id为PK。当表1的id与表2的id匹配时,我想从表1中选择所有唯一的行

例如:

表1

---id------时间戳------状态------col3---

……111…………2017-10-05 10:42:23…………K

……111…………2017-10-05 12:42:23…………X

……111…………2017-10-05 18:42:23…………Y

……222…………2017-10-05 11:42:23…………B

表2

---id------col2-----------col3------col4---

……111…………中交…………KKKY

……222…………HSGHXF…………OPUB

在这里,我只想从表1中选择两行,一行id为111,另一行id为222。

试试:

从表1中选择*作为tbl1左连接表2作为tbl1.ID上的tbl2= tbl2.ID


这将选择id为111的所有3行。我只想要两个独特的行,通过tbl1.ID创建不同的内部joingroup。它对您有用吗?如果否,则发送表详细信息。注意:id在两个表中都不是唯一的,因此它不能是主键。请重新措辞你的问题……我问了。id是第二个表中的PK。我不确定这里发生了什么,但在我看来,表1中id为111的所有三行都是唯一的。他们都有不同的身份和时间戳。您可能需要重新表述问题。表1中的所有表都应该是唯一的,这就是我将id、ts、状态设置为PK的原因。但是,我想从表2中选择与表1具有相同id的唯一行。这意味着一行的id为111,另一行的id为222,但表1中有3行的key='111',因此您必须选择:您希望在结果集中显示哪一行?
    // I Have two unique rows match and display data in table...   

 <?php
                $con=mysql_connect('localhost','root','')or die("not connect".mysql_error());

                    $db=mysql_select_db('persons')or die("could Not connect".mysql_error());




        $res="select persond.personid,orders.OrderNumber,persond.firstname,persond.lastname from persond LEFT JOIN orders ON persond.personid=orders.PersonID" or die("could Not select".mysql_error()); 

        $query=mysql_query($res);

        echo "<table border='1'>";

                        echo "<th>id</th><th>first Name</th><th>lastname</th><th>ordernumber</th>";

                        while($row=mysql_fetch_array($query)){

        echo "<tr>";
                        //echo "<td><br/>".$row['id']."</td>";
                        echo "<td>".$row['personid']."</td>";
                        echo "<td>".$row['firstname']."</td>";
                        echo "<td>".$row['lastname']."</td>";
                        echo "<td>".$row['OrderNumber']."</td></tr>";
        }

        ?>