次の2つのテーブルがあります。
rsrpID rsrpName
1 Library Catalog
2 Interlibrary Loan
3 Academic Search Complete
4 JSTOR
5 Project Muse
6 LibGuides
7 Web Resource
8 Other (please add to Notes)
9 Credo Reference
rsriID rsrirsrpID rsrisesdID
603 6 243
604 1 243
605 7 243
606 8 244
607 6 245
608 8 245
私がやろうとしているのは、最初のテーブル全体を返し、最初のテーブルの rsrpID と一致する 2 番目のテーブルの行について、最初のテーブルの横にある関連する行の行を返すことです。次に例を示します。
rsrpID rsrpName rsrisesdID
1 Library Catalog 243
2 Interlibrary Loan
3 Academic Search Complete
4 JSTOR
5 Project Muse
6 LibGuides 243
7 Web Resource 243
8 Other (please add to Notes)
9 Credo Reference
...しかし、私の人生では、これを返す結合ステートメントを理解することはできません。現在、私が与えられたクエリは
select rp.rsrpID as ID, rp.rsrpName as Name,
(select if((count(rsrisesdID) > 0), 'checked', '')
from resourcesintroduced ri
where (ri.rsrirsrpID = rp.rsrpID)
and (rsrisesdID = 243) ) as 'checked'
from resourcesintroduced ri,
resourcepool rp
where rsrisesdID = 243
group by ID
order by Name asc;
ご覧のとおり、クエリは扱いにくく、特定rsrisesdID
のクエリがまったく表示されない場合、クエリは行をまったく返しません。