MySQL:从没有关系的多个表中进行选择

时间:2017-05-17 14:54:10

标签: php mysql join

第一篇文章,温柔!我的SQL知识充其量只是平均值。

我有两张桌子彼此没有直接关系。

  • TableA(“CustomerWishList”),其中包含“bookID”列,其他书籍数据, 等等等。
  • TableB(“CustomerOwned”),包含列 - “bookID”,其他书籍数据等等

一本书可以在这些表中的一个,两个或没有。

我需要创建一个SQL语句来计算TableA或TableB中"bookID='data'"个出现次数。

到目前为止使用PHP我首先搜索TableA "bookID"列,然后如果找不到任何内容,则接下来查找TableB "bookID"列...它可以工作,但是效率低,并且我确信必须是一个更好的方式。

JOIN语句似乎不适用于此处? - 我错了。

更新

我正在使用的Psuedo PHP代码:

$total=SELECT COUNT(*) FROM CustomerWishList WHERE BOOKID=1234

if ($total==0) {
    $total2=SELECT COUNT(*) FROM CustomerOwned WHERE BOOKID=1234
}  
return $total2;

1 个答案:

答案 0 :(得分:0)

下面的查询将为您提供仅在表A中计算的图书ID:

__unicode__

类似地,以下查询将为您计算仅在表B中的图书ID:

SELECT count(1) as `count`
FROM tableA
WHERE NOT EXISTS
 (SELECT bookID FROM tableB WHERE bookID = tableA.bookID);

现在,如果您想SELECT count(1) as `count` FROM tableB WHERE NOT EXISTS (SELECT bookID FROM tableA WHERE bookID = tableB.bookID); 这两个,那么您可以使用以下查询:

add