我试图找到一种方法从同一查询中的两个表中选择数据如下:
假设我将此作为 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'];
}
基本上我想知道两个表中是否找到导入的项目。我希望这对你有用!
任何帮助都会非常感激
答案 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。