从两个具有相同名称的表中选择数据

时间:2016-02-29 11:13:01

标签: php mysql select join

我试图找到一种方法从同一查询中的两个表中选择数据如下:

假设我将此作为 table1

id | item | qty
1  | 1bb1 | 12
2  | 1cc1 | 10

table2

id | item | qty
6  | 1bb1 | 12
7  | 1vv1 | 4

我有一个导入的文件,其中包含来自Excel工作表的数据$sheetData[$i]['A'],我需要使用它来查找 BOTH 表格中是否包含此项目。

我的代码如下:

$query1="SELECT * FROM table1.item,table2.item WHERE item ='".$sheetData[$i]['A']."'";

$result1= mysql_query($query1);
if(mysql_num_rows($result1)>0){

echo "This Item Found in Both Tables";
echo $sheetData[$i]['A'];
echo "<br />";
}
else{
    echo "Item Could Not Be Found in both tables";
    echo $sheetData[$i]['A'];
}

基本上我想知道两个表中是否找到导入的项目。我希望这对你有用!

任何帮助都会非常感激

3 个答案:

答案 0 :(得分:2)

编译器无法确定需要比较的项目。 table1中的项目或table2中的项目

所以写查询为:

SELECT A.* , B.* 
FROM table1 A, table2 B 
WHERE A.item  = B.item AND 
      A.item  = '".$sheetData[$i]['A']."'

答案 1 :(得分:0)

尝试 -

"SELECT t1.id, t1.item, t1.qty, t2.id id_2, t2.qty qty_2 FROM table1 t1
INNER JOIN table2 t2 ON t2.item = t1.item 
WHERE table1.item ='".$sheetData[$i]['A']."'"
  

尽量避免使用 mysql ,现在已弃用。 mysqli / PDO 代替。

答案 2 :(得分:0)

尝试这样的事情:

SELECT COUNT(*)
FROM (
  SELECT DISTINCT 1 
  FROM table1
  WHERE item = ?

  UNION ALL

  SELECT DISTINCT 1  
  FROM table2
  WHERE item = ?) AS t

如果两个表中都存在该项,则返回2;如果仅存在于1个表中,则返回1;如果该项不存在于任何两个表中,则返回0。