[英]Multiple SELECT COUNT from different tables mySQL
我想計算來自不同兩個表的帶有前綴PublicImg的圖像數量,因此我使用了以下代碼:
$nb_imgs_a_afficher = $BDD->query("
SELECT COUNT(ID,img_kind)
FROM images_public
UNION
SELECT COUNT(ID,img_kind)
FROM images_users
WHERE img_kind='PublicImg'");
$images_users = $nb_imgs_a_afficher->fetch();
但我收到此錯誤:
(!)致命錯誤:消息未捕獲的異常“ PDOException”
'SQLSTATE [42000]:語法錯誤或訪問沖突:1064您的SQL語法有錯誤; 在第72行的C:\\ wamp1 \\ www \\ website \\ Index_Public_Images \\ public_images.php中,檢查與MySQL服務器版本相對應的手冊以在'附近使用正確的語法
好吧,在我有一張容易使用的桌子之前:
$nb_imgs_a_afficher = $BDD->query("SELECT COUNT(*) AS nb_imgs FROM images_users WHERE img_kind='PublicImg' ");
首先,您在那里有錯字。 將SLECET
更改為SELECT
,然后嘗試從兩個不同的表使用中獲取行總和-
SELECT COUNT(*) FROM (
SELECT ID,img_kind
FROM images_public
UNION
SELECT ID,img_kind
FROM images_users
WHERE img_kind='PublicImg' ) x
不知道您是否要在兩個查詢上都使用WHERE
子句。 如果是這樣, WHERE img_kind='PublicImg'
在UNION
之前添加WHERE img_kind='PublicImg'
。
另外,檢查是否重復。 UNION
將刪除重復項,而UNION ALL
則不會。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.