Created
February 17, 2014 17:05
-
-
Save hodadgists/9054682 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$missingtickets = DB::table('j_ticket AS t') | |
->join('j_event AS e', 'e.id', '=', 't.event_id') | |
->join('users AS mu', 'mu.id', '=', 't.mod_user_id') | |
->join('users AS mc', 'mc.id', '=', 't.created_user_id') | |
->select( | |
't.id AS t_id', 't.eventDate', 't.purchase_order_id', 't.section', 't.row', 't.seat', 't.updated_at', 't.created_at', | |
'e.id AS e_id', 'e.name AS eventname', | |
'mu.username AS mod_username', | |
'mc.username AS created_username' | |
) | |
->where('t.eventDate', '>=', '2010-01-01') | |
->whereIn('t.id', function($query) | |
{ | |
$query->select('j_ticket.id') | |
->from('j_ticket') | |
->where('j_ticket.sold', '=', '1') | |
->whereNotIn('j_ticket.id', function($query) | |
{ | |
$query->select('j_invoice_ticket.ticket_id') | |
->from('j_invoice_ticket') | |
->where('j_invoice_ticket.ticket_id', '=', 'j_ticket.id'); | |
}); | |
}) | |
->get(); |
the SQL i am recreating:
select t.id, e.id, e.name, e.date, e.time, t.purchase_order_id, t.section, t.row, t.seat, t.updated_at, u1.username, t.created_at, u2.username
from j_ticket t
inner join j_event e on e.id = t.event_id
inner join users u1 on u1.id = t.mod_user_id
inner join users u2 on u2.id = t.created_user_id
where e.date > '2009-01-01' and t.id in
(
select id from j_ticket where sold=true and id not in
(
select ticket_id from j_invoice_ticket where ticket_id=j_ticket.id
)
)
order by t.created";
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
query log (without the joins so output doesn't get truncated)
'select
t
.id
ast_id
,t
.eventDate
,t
.purchase_order_id
,t
.section
,t
.row
,t
.seat
,t
.updated_at
,t
.created_at
fromj_ticket
ast
where
t
.eventDate
>= ?and
t
.id
in (select
j_ticket
.id
fromj_ticket
where
j_ticket
.sold
= ?and
j_ticket
.id
not in (select
j_invoice_ticket
.ticket_id
from
j_invoice_ticket
where
j_invoice_ticket
.ticket_id
= ?)
)'