通过使用PHP MySql比较来自不同数据库的两个不同列,从表中检索列

时间:2014-03-29 16:19:37

标签: php mysql sql sql-server database

SELECT image_name FROM image_uploader.image_base WHERE image_uploader.image_base.image_id != (select image_id from user_seen.{$value}_seen)

数据库结构:

  

数据库----------------->表---------------->柱   image_uploader -----------> IMAGE_BASE -----------> IMAGE_NAME   image_uploader -----------> IMAGE_BASE -----------> image_id   user_seen ----------------> {$值} _seen --------> image_id

代码:

    $query = mysql_query("SELECT image_name FROM image_uploader.image_base WHERE image_uploader.image_base.image_id != (select image_id from user_seen.{$value}_seen)") or die(mysql_error());
while($data = mysql_fetch_array($query)){
echo $data["image_name"];
echo "<br />";
}

我尝试使用上面的语句通过比较table1和table2中的Id(image_id)来从database1(image_uploader)中检索table1(image_base)中的名称(image_name)({$如果该图像的Id位于当前table2中,则不会返回table1中的名称。

只有在table2中只有一个条目时,上述语句才有效。当表2有两个以上的条目时,php返回 - &gt;&#34;子查询返回超过1行&#34;。

我需要它来返回数组中不存在于table2中的名称。

1 个答案:

答案 0 :(得分:0)

如果您的子查询返回的行数超过1行,则应使用NOT IN代替!=

$query = mysql_query("SELECT image_name FROM image_uploader.image_base WHERE image_uploader.image_base.image_id NOT IN (select image_id from user_seen.{$value}_seen)") or die(mysql_error());