UNIONクエリで使用されているすべてのテーブルのカウントを組み合わせるにはどうすればよいですか。これは私が持っているものです:UNIONクエリでのエントリ数の結合
0
A
答えて
1
あなたが外でカウントし、すべてのテーブル組合の結果を含むサブクエリにそれを適用配置しようとしました:あなたはのようなものは、質問に答えるために
。
SELECT COUNT(*) FROM (SELECT ...) as abc
それとも
Select mytable .userid, sum(mytable .subcount) as totalcount from
(
select userid, count(*) as subcount from table1 group by userid
union all
select userid, count(*) as subcount from table2 group by userid
)
as mytable
group by mytable .userid
またはFULL OUTER JOINの代わりに労働組合を使用してみてください、これを試して、それはあなたの...
SELECT Count(UserID), UserId
FROM MyTable1
GROUP BY MyTable1.UserID
UNION
SELECT Count(UserID), UserId
FROM MyTable2
FULL OUTER JOIN MyTable2 ON (MyTable1.UserId=MyTable2.UserId)
GROUP BY MyTable2.UserID
更新の答えも同じ結果が得られます:
をIFあなたのクエリはうまくいきますeはその後、クエリがOK
select count(*) from
(
SELECT COUNT(*) as num
from table_one LEFT JOIN table_constant on table_one.c_id
= table_constant.c_id
where table_constant.user_id = '$uid'
UNION
SELECT COUNT(*) as num
from table_two LEFT JOIN table_constant on table_two.c_id
= table_constant.c_id
where table_two.added_by = '$uid'
UNION
SELECT COUNT(*) as num
from table_three LEFT JOIN table_constant ON table_three.c_id
= table_constant.c_id
where table_constant.user_id = '$uid'
UNION
SELECT COUNT(*) as num
from table_four LEFT JOIN table_constant ON table_four.c_id
= table_constant.c_id
where table_constant.user_id = '$uid'
ORDER BY date_time_added DESC") as pagecount
2
さらに別のクエリですべてを包んで合計します。
SELECT sum(num)
FROM (... union queries here ...) as subquery;
PHPで返された行をループし、合計を自分で行います。
1
これを書くには、より良い方法が必要です。ユニオンは非常に強力ですが、1つのクエリで4つの選択肢を呼び出すのですが、それがすべてのページで実行されると、パフォーマンスが低下します。
SELECT
SUM (mnTbl.num) as sumNum
FROM
(
SELECT
COUNT(*) as num
FROM
table_one
LEFT JOIN
table_constant
ON
table_one.c_id = table_constant.c_id
WHERE
table_constant.user_id = '$uid'
UNION
SELECT
COUNT(*) as num
FROM
table_two
LEFT JOIN
table_constant
ON
table_two.c_id = table_constant.c_id
WHERE
table_two.added_by = '$uid'
UNION
SELECT
COUNT(*) as num
FROM
table_three
LEFT JOIN
table_constant
ON
table_three.c_id = table_constant.c_id
WHERE
table_constant.user_id = '$uid'
UNION
SELECT
COUNT(*) as num
FROM
table_four
LEFT JOIN
table_constant
ON
table_four.c_id = table_constant.c_id
WHERE
table_constant.user_id = '$uid'
) as mnTbl
ORDER BY
date_time_added DESC
関連する問題
- 1. 複数のCOUNT(UNION)SQLクエリの合計結果
- 2. SQLクエリの殺害パフォーマンスでUnionと結合する
- 3. 結合されたクエリでSQL UNIONを使用する方法
- 4. UNIONクエリの結果をMYSQLストアドプロシージャのローカル変数に保存
- 5. MySQL - 別のUNIONクエリでクエリ結果を使用する
- 6. 複数のsolrクエリの結果を結合する方法(SQLのUNIONと同じように)?
- 7. 複数エントリを1つのエントリに結合する
- 8. SQL複数の結合クエリ
- 9. SQLクエリ複数の結合
- 10. Entity Frameworkクエリでの複数の結合
- 11. MySQLは同じスキームテーブルのUNIONの結果を結合します
- 12. SQL - UNIONからの結果を結合する方法
- 13. Djangoでのクエリの結合
- 14. 選択クエリ内の結合の数
- 15. Mysql - 結合クエリの結果の合計
- 16. 複数の結合を持つMySQL結合クエリ
- 17. 結合テーブルの最後のエントリ
- 18. クエリ内で複数の結果を使用してクエリ内で結合する
- 19. UNIONクエリのフィールドの順序
- 20. 左の結合でSQLクエリ
- 21. CActiveDataProvider結合でのクエリ
- 22. LINQでの結合が解除されたUnion
- 23. 複数のSQLクエリまたは結合?
- 24. 複数のテーブルを結合するクエリ
- 25. 複数の結合を含むSQLAlchemyクエリ
- 26. テーブル値関数とMSSQLクエリの結合
- 27. SQLサーバー[クエリ+複数の結合条件]
- 28. Android Sqlite - UNION ALLを使用してクエリを結合する方法
- 29. 結合クエリのエイリアス
- 30. 結合クエリのエラー
ねえ。私は上記のように$ total_pagesであるvariabelの中のカウントが必要です。私はそれを行う方法がわかりません。 – KPO
私は自分の答えを更新しました。これをチェックしてください。照会で組合ルールを実行している場合は、これを行います。 mycountとして(あなたのクエリ)からcount(*)を選択します。それは私のために働いた今あなたはあなたの問題を取り除くでしょう.. – Syeda
もう一つの事Syeda。どのように私はそれを変数に入れますか? – KPO