比较两个具有相同列的表以获得相似的值

时间:2015-09-16 06:44:06

标签: php mysql

我有两张表tableAtableB。两者都有两个相似的列IDB_ID。 我想检查两个表是否具有相似的值。我的代码是:

$ac = $mysql->query("(SELECT ID,B_ID FROM tableA) INTERSECT (SELECT ID,B_ID FROM tableB)");

  if($ac){
    while($row  = $ac->fetch_assoc()){

      echo "ID ".$row["ID"]." B_ID".$row["B_ID"]."<br>";
    }
  }

但这并没有给出任何结果。

    ps: tableA(ID,B_ID)

 1->23
 2->23
 3->23
 4->56
 5->67

tableB(ID,B_ID)

3->23
8->26
11->27
12->66

这两个表都有3-> 23但是1-> 23 2-> 23不在表B中我怎样才能算出那种记录。相同的B_ID但不同的ID

4 个答案:

答案 0 :(得分:1)

如果两个表中都有B.ID列,则使用以下JOIN查询

SELECT a.ID, a.B_ID 
FROM tableA AS a
JOIN tableB AS b ON (a.B_ID = b.B_ID AND a.ID = b.ID)

答案 1 :(得分:0)

使用联接获取数据并迭代结果。运行查询,如果有任何记录满足查询。

select t1.ID, t1.B_ID from tableA t1, tableB t2
where t1.ID = t2.ID
and   t1.B_ID =t2.B_ID  

答案 2 :(得分:0)

使用INNER JOINCOUNT

SELECT COUNT(*) as cnt
FROM tableA INNER JOIN tableB
ON tableA.B_ID = tableB.B_ID AND tableA.ID = tableB.ID

现在,如果cnt大于零,则存在普通值,否则为

答案 3 :(得分:0)

请尝试使用此查询可能会有所帮助。

SELECT
    tbla.ID,
    tbla.B_ID
FROM
    tablea AS tbla,
    tableb AS tblb
WHERE
    tbla.B_ID = tblb.B_ID