0

これは mysql の質問であり、可能かどうかさえわかりませんが、以下に示すように、2 つのテーブルがあります。彼らは基本的に同じことをしていますが、違いがあります。一方が支払い済み = 1、もう一方が支払い済み = 0

したがって、私の頭痛の種は、表 2 にcardidprice、およびtitleが含まれている表 1 のように、 payed = 1 を正確に持っている場合、それを表 # 2 に表示してはならないということです。5分でいいです。

SQL ステートメント 1

SELECT t.cardid, ct.title, t.transactionid, FROM_UNIXTIME(t.created),t.priceafterdiscount, t.paid 
FROM transactions as t
left join exp_channel_titles ct on t.restaurant_id = ct.entry_id
where t.paid = 0 
and t.transactiontime > '2013-09-23' and 
t.phoneid != '123456789012345' and 
t.cardid != '88888888' and 
t.restaurant_id NOT in (47505) 
ORDER BY t.created DESC;

表1の私の出力。

Card_ID     Title               Trans_ID Created              price   Paid
10017039    Café Cici           15887   2013-09-26 11:04:49  75     0
10017039    Café Cici           15885   2013-09-26 11:03:08  100    0
10017039    Café Cici           15884   2013-09-26 11:02:33  15000  0
10166152    Viet-Nam Nam        15870   2013-09-25 20:51:44  28800  0
10030773    Restaurant Shezan   15866   2013-09-25 20:10:35  38175  0
10030773    Restaurant Shezan   15865   2013-09-25 20:09:41  50900  0
10030773    Restaurant Shezan   15864   2013-09-25 20:08:13  38175  0

SQL ステートメント 2

SELECT t.cardid, ct.title, t.transactionid, FROM_UNIXTIME(t.created), t.priceafterdiscount, t.paid
FROM transactions as t
left join exp_channel_titles ct on t.restaurant_id = ct.entry_id
where t.paid = 1
and t.transactiontime > '2013-09-23' and 
t.phoneid != '123456789012345' and 
t.cardid != '88888888' and 
t.restaurant_id NOT in (47505) 
ORDER BY t.created DESC

表2の私の出力。

Card_ID     Title               Trans_ID Created              price   Paid
10171120    Hjørnet             15889   2013-09-26 11:18:47  6750    1
10017039    Café Cici           15888   2013-09-26 11:06:24  75      1
10017039    Café Cici           15886   2013-09-26 11:04:14  75      1
10129289    Café ZugarBaby      15876   2013-09-25 21:44:34  15000   1
10082903    Café Katz           15862   2013-09-25 19:40:26  19040   1
10064767    Restaurant Fønix    15857   2013-09-25 17:58:53  14250   1
4

1 に答える 1

0

select * from table 1 where row is not table 2 from your condition:

select * from 
table1 
left join table2 
on table1.cardid=table2.cardid 
and table1.price=table2.price 
and table1.title=table2.title and 
timestampdiff(minute,table1.created, table2.created) between -5 and 5

where table2.cardid is null

または、2 つのクエリすべてを統合し、cardid、価格、タイトルでグループ化し、count(*)=1 およびpaid=0 の条件を追加することもできますが、5 分のタイムスタンプ条件では機能しません。

于 2013-09-26T10:43:14.917 に答える