【发布时间】:2017-10-17 02:53:39
【问题描述】:
第一次发帖,温柔点!我的 SQL 知识充其量只是平均水平。
我有 2 个彼此没有直接关系的表。
- TableA(“CustomerWishList”),列“bookID”,其他书籍数据, 等等等等等等
- TableB(“CustomerOwned”),包含列 - “bookID”、other-book-data 等
一本书可以在一个、两个或任何一个表中。
我需要创建 SQL 语句来计算 TableA 或 TableB 中 "bookID='data'" 出现的次数。
到目前为止,我使用 PHP 搜索 TableA "bookID" 列,然后如果没有找到,接下来搜索 TableB "bookID" 列...它有效,但效率低下,并且确信必须有更好的方法.
JOIN 语句似乎不适用于这里? - 我可能是错的。
更新
我目前正在使用的伪 PHP 代码:
$total=SELECT COUNT(*) FROM CustomerWishList WHERE BOOKID=1234
if ($total==0) {
$total2=SELECT COUNT(*) FROM CustomerOwned WHERE BOOKID=1234
}
return $total2;
【问题讨论】:
-
发布您在此处提到的 PHP 代码可能会有所帮助。
-
普通 bookID 是一个关系。由于您没有展示您尝试过的所有内容,我们真正能做的就是给您一些建议:您可以使用 COUNT IF 或 CASE 实现您想要的 - 研究它们。
-
由于我们没有完整的信息,我们无法确定一切是如何设置的。只是想给一个友好的建议。如果我认为您可以在两个表中都有一本书,所有数据都相同,那么最好有一个包含所有书籍及其数据的表。然后有另一个名为 CustomerWishList 的表,它只保存 UserID 和 bookID 以及另一个名为 CustomerOwned 的表。然后,您不需要拥有所有信息的多个副本。这里可能不是这种情况,但如果是这样的话,只是一个小费。祝你好运。
-
感谢反馈 - 我在上面添加了一些伪代码