0

編集:私はそれを得たと思います。明日さらにテストを行い、この投稿に戻ります。みんなありがとう!

テーブルからのトランザクション「アイドル」tbl_invtyを持たない各アイテムに対して行われた最後のトランザクションを照会しようとしています。トランザクションが多数あるため、クエリを正しく行うのに混乱しており、これまでにできたのは、以下の 2 つのテーブルを で結合することだけでした。列に基づいて、行 5 および 8 と結合された行 2 および 3 のみを出力できるようにするにはどうすればよいですか?typetbl_transtbl_invty.code=tbl_trans.codetbl_invtytbl_transcode

tbl_invty

+------+-------------+
| CODE | DESCRIPTION |
+------+-------------+
|    1 |         abc |
|    2 |         bbb |
|    3 |         cdf | 
+------+-------------+

tbl_trans

+----------+------+--------+------------+
| TRANS_ID | CODE |   TYPE | TRANS_DATE |           
+----------+------+--------+------------+
|        1 |    1 |    NEW | 2012-09-29 |           
|        2 |    1 | UPDATE | 2012-09-30 |   
|        3 |    1 |   IDLE | 2012-09-30 |        
|        4 |    2 |    NEW | 2012-09-29 |   
|        5 |    2 | UPDATE | 2012-09-30 |   
|        6 |    3 |    NEW | 2012-09-29 |       
|        7 |    3 | UPDATE | 2012-09-30 |           
|        8 |    3 | UPDATE | 2012-09-30 |   
+----------+------+--------+------------+
4

2 に答える 2

1
SELECT tt.*, result.* from tbl_trans tt
INNER JOIN
(SELECT DESCRIPTION, MAX(t.TRANS_ID) as TRANS_ID ,i.`CODE`,  
 GROUP_CONCAT(t.`TYPE`) TYPES
from tbl_invty i
LEFT JOIN tbl_trans t
ON i.CODE = t.CODE
GROUP BY i.`CODE`
HAVING NOT FIND_IN_SET('IDLE',TYPES)) result
ON tt.TRANS_ID = result.TRANS_ID;

サンプルフィドル

于 2013-09-30T10:19:30.137 に答える