Next Page

1

Previous Page

スレッド: クエリーの正しい使い方を教えてください。

作成日: 12/02/10 04:57 AM

返信: 2

suu


常連


入会日: 08/19/09

投稿数: 66

クエリーの正しい使い方を教えてください。
11/26/10 8:12 AM

Table1テーブル
number / id
001 / aaa
001 / bcbc
002 / aaa


Table2テーブル
number / name / count
001 / ああ / 5
002 / いい / 7
003 / うう  / 2


<cfquery name=゙first゙ datasource=゙#dsn#゙>
Select * from Table1
Where id=aaa
</cfquery>

<cfquery name=゙second゙ datasource=゙#dsn#゙>
Select * from Table2
Where number=<cfqueryparam value=゙#first.number#゙>
</cfquery>

いつもお世話になっております。

結果的にidが"aaa"であるTable2の全てのnumberの詳細を取り出して、cfloopで一覧表示したいのですが、本来recordcountが2つとなってほしいところが1つのみで、表示が001のnumberのみとなります。

一覧表示が
001 / ああ / 5
002 / いい / 7
となるように取り出して表示するにはどのように記述すればよいかどなたかご教授いただけないでしょうか?
よろしくお願いいたします。

Link | Top | Bottom

AXL


長老


入会日: 02/02/08

投稿数: 246

Re: クエリーの正しい使い方を教えてください。
12/02/10 1:57 PM

例のように、最初のクエリー(where id='aaa'に訂正)で2つのレコードが返りますが、2番目のクエリー(where number=<cfqueryparam cfsqltype="cf_sql_integer" value="#first.number#" に訂正)のところでは、1番目のクエリーの結果の1番目のレコードのnumberの値を使っているので、結果2番目のクエリーでは1つのレコードしか返りません。
こういう場合は、SQLのINNER JOINなどを使ってあげれば、簡単に希望どうりの結果を導けます。

例えば、
SELECT table2.number, table2.name, table2.count
FROM table1
INNER JOIN table2 ON table1.number = table2.number
WHERE table1.id = 'aaa'

Link | Top | Bottom

suu


常連


入会日: 08/19/09

投稿数: 66

RE: クエリーの正しい使い方を教えてください。
12/10/10 6:43 PM

AXL様いつもお世話になりありがとうございます。
教えていただいた方法で思うようなクエリーができるようになりました!
ありがとうございます!!

Link | Top | Bottom

Next Page

1

Previous Page

新規投稿

ログイン して返信して下さい。