各位大大好,我正在寫一個wep app來練sql與後端,但碰到了問題。
我有作者,作品集,作品,3個table,作品集底下可以沒有作品,作品也可以不屬於任何作品集,作品集與作品都有名字且該欄位UNIQUE,現在我有作者id與一個名字,但我不知道這名字是作品還是做品集的名字。
個別分開找我知道怎麼做,但想要一個QUERY搞定SQL要怎麼寫?
作品與作品集回傳的類型與回傳的欄位數量也不一樣,我有看到這篇但是我連欄位數量都不清楚,不知道要make多大的size,scan又只能一次scan完,我應該怎麼做?
謝謝大家。
GOOGLE "SQL JOIN" 了解一下是不是你想要的,
以及依需求使用不同 join
我知道JOIN,但我不知道如何搭配動態IF ELSE
這是我目前的作法,要分好幾道指令,我想知道有沒有辦法一個QUERY搞定。
CREATE TEMPORARY TABLE IF NOT EXISTS tmptable AS (
select
work.ownerid, work.createtime, work.updatetime,
pjt.pid, pjt.name, pjt.htmlpath, pjt.super,
GROUP_CONCAT(blog.bid)
from project as pjt
join work on pjt.oid = work.oid
join owner on owner.uniquename = 'any_mos'
left join blog on pjt.pid = blog.super
where pjt.name = 'name'
group by pjt.pid);
CREATE TEMPORARY TABLE IF NOT EXISTS tmptable2 AS (SELECT * FROM tmptable);
select * from tmptable
union all
select
work.ownerid, work.createtime, work.updatetime,
blog.bid, blog.name, blog.htmlpath, blog.super as super_pjt,
pjt.super as super_set
from blog
join work on blog.oid = work.oid
join owner on owner.uniquename = 'any_mos'
left join project as pjt on pjt.pid = blog.super
left join site on pjt.super = site.sid
where blog.name = 'name';
drop table if EXISTS tmptable, tmptable2;