私は、ユニオンクエリは同じ数の列を持つ必要があることを知っています。私はテーブルcomments
から結果を得ようとしており、テーブルstrings
の結果は複数の結合を持っています。どのように私はこれを正しく行うのですか?私はまだテストしていません。なぜなら、異なる数の列でエラーが発生することがわかっているからです。ここに私が結合しようとしている2つのクエリがあります。mysql union異なる列数
クエリ1(文字列)
SELECT sub.actionid as usersub,
ftable.`last-time` as lastvisited, updatetable.recent as mostrecent, parent.* FROM `strings` as parent
LEFT JOIN subscribe sub on sub.actionid=parent.id AND sub.userid=:userid
JOIN followers ftable on ((ftable.sid=parent.sid AND ftable.page='1') OR
(ftable.sid=parent.sid AND ftable.position=parent.position AND ftable.page='0')
OR (ftable.profile=parent.starter AND parent.guideline='1')) AND ftable.userid=:userid
JOIN `update-recent` updatetable on
((updatetable.sid=parent.sid AND updatetable.position=parent.position AND updatetable.pageid='0')
OR (updatetable.profile=parent.starter) OR (updatetable.pageid=parent.pageid AND parent.pageid!=0))
WHERE ftable.userid=:userid AND parent.deleted='0' GROUP BY parent.id
クエリ2(コメント)
SELECT * FROM comments WHERE viewed='0' AND (`starter-id`=:userid OR respondid=:userid)
私は、タイムスタンプ列posted
(最新)ORDER BY posted DESC
どのように私はこれらのクエリを結合するのですか?
クエリに集計関数がないため、GROUP BYのポイントは何ですか? – Strawberry
[列数の異なる2つのテーブルを結合する]の複製が可能です(http://stackoverflow.com/questions/2309943/unioning-two-tables-with-different-number-of-columns) – hakre