Skip to content

Instantly share code, notes, and snippets.

@krainboltgreene
Last active December 11, 2017 02:44
Show Gist options
  • Save krainboltgreene/1ddd05e0fcfab323707becff7ed13027 to your computer and use it in GitHub Desktop.
Save krainboltgreene/1ddd05e0fcfab323707becff7ed13027 to your computer and use it in GitHub Desktop.
Note: joins.sql acutally returns multiple addresses (if multiple exist) where as the rest return a single address (even if multiple addresses exist)
User.includes(:addresses).where(addresses: {id: ██}).first.addresses
SQL (0.8ms) SELECT DISTINCT "users"."█████████", "users"."█████████" AS alias_0 FROM "users" LEFT OUTER JOIN "addresses" ON "addresses"."█████████" = "users"."█████████" WHERE "addresses"."█████████" = $1 ORDER BY "users"."█████████" ASC LIMIT 1 [["id", ██]]
SQL (0.9ms) SELECT "users"."█████████" AS t0_r0, "users"."█████████" AS t0_r1, "users"."█████████" AS t0_r2, "users"."█████████" AS t0_r3, "users"."█████████" AS t0_r4, "users"."█████████" AS t0_r5, "users"."█████████" AS t0_r6, "users"."█████████" AS t0_r7, "users"."█████████" AS t0_r8, "users"."█████████" AS t0_r9, "users"."█████████" AS t0_r10, "users"."█████████" AS t0_r11, "users"."█████████" AS t0_r12, "users"."█████████" AS t0_r13, "users"."█████████" AS t0_r14, "users"."█████████" AS t0_r15, "users"."█████████" AS t0_r16, "users"."█████████" AS t0_r17, "users"."█████████" AS t0_r18, "users"."█████████" AS t0_r19, "users"."█████████" AS t0_r20, "users"."█████████" AS t0_r21, "users"."█████████" AS t0_r22, "users"."█████████" AS t0_r23, "users"."█████████" AS t0_r24, "users"."█████████" AS t0_r25, "users"."█████████" AS t0_r26, "users"."█████████" AS t0_r27, "users"."█████████" AS t0_r28, "users"."█████████" AS t0_r29, "users"."█████████" AS t0_r30, "users"."█████████" AS t0_r31, "users"."█████████" AS t0_r32, "users"."█████████" AS t0_r33, "users"."█████████" AS t0_r34, "users"."█████████" AS t0_r35, "users"."█████████" AS t0_r36, "users"."█████████" AS t0_r37, "users"."█████████" AS t0_r38, "users"."█████████" AS t0_r39, "users"."█████████" AS t0_r40, "users"."█████████" AS t0_r41, "users"."█████████" AS t0_r42, "users"."█████████" AS t0_r43, "users"."█████████" AS t0_r44, "users"."█████████" AS t0_r45, "users"."█████████" AS t0_r46, "users"."█████████" AS t0_r47, "users"."█████████" AS t0_r48, "users"."█████████" AS t0_r49, "users"."█████████" AS t0_r50, "users"."█████████" AS t0_r51, "users"."█████████" AS t0_r52, "users"."█████████" AS t0_r53, "users"."█████████" AS t0_r54, "users"."█████████" AS t0_r55, "users"."█████████" AS t0_r56, "users"."█████████" AS t0_r57, "users"."█████████" AS t0_r58, "users"."█████████" AS t0_r59, "users"."█████████" AS t0_r60, "users"."█████████" AS t0_r61, "users"."█████████" AS t0_r62, "users"."█████████" AS t0_r63, "users"."█████████" AS t0_r64, "users"."█████████" AS t0_r65, "users"."█████████" AS t0_r66, "users"."█████████" AS t0_r67, "users"."█████████" AS t0_r68, "users"."█████████" AS t0_r69, "users"."█████████" AS t0_r70, "users"."█████████" AS t0_r71, "users"."█████████" AS t0_r72, "users"."█████████" AS t0_r73, "users"."█████████" AS t0_r██, "users"."█████████" AS t0_r75, "users"."█████████" AS t0_r76, "users"."█████████" AS t0_r77, "addresses"."█████████" AS t1_r0, "addresses"."█████████" AS t1_r1, "addresses"."█████████" AS t1_r2, "addresses"."█████████" AS t1_r3, "addresses"."█████████" AS t1_r4, "addresses"."█████████" AS t1_r5, "addresses"."█████████" AS t1_r6, "addresses"."█████████" AS t1_r7, "addresses"."█████████" AS t1_r8, "addresses"."█████████" AS t1_r9, "addresses"."█████████" AS t1_r10, "addresses"."█████████" AS t1_r11, "addresses"."█████████" AS t1_r12, "addresses"."█████████" AS t1_r13, "addresses"."█████████" AS t1_r14, "addresses"."█████████" AS t1_r15, "addresses"."█████████" AS t1_r16, "addresses"."█████████" AS t1_r17, "addresses"."█████████" AS t1_r18, "addresses"."█████████" AS t1_r19, "addresses"."█████████" AS t1_r20 FROM "users" LEFT OUTER JOIN "addresses" ON "addresses"."█████████" = "users"."█████████" WHERE "addresses"."█████████" = $1 AND "users"."█████████" IN (██) ORDER BY "users"."█████████" ASC [["id", ██]]
User.joins(:addresses).includes(:addresses).where(addresses: {id: ██}).first.addresses
SQL (0.7ms) SELECT DISTINCT "users"."█████████", "users"."█████████" AS alias_0 FROM "users" INNER JOIN "addresses" ON "addresses"."█████████" = "users"."█████████" WHERE "addresses"."█████████" = $1 ORDER BY "users"."█████████" ASC LIMIT 1 [["id", ██]]
SQL (0.8ms) SELECT "users"."█████████" AS t0_r0, "users"."█████████" AS t0_r1, "users"."█████████" AS t0_r2, "users"."█████████" AS t0_r3, "users"."█████████" AS t0_r4, "users"."█████████" AS t0_r5, "users"."█████████" AS t0_r6, "users"."█████████" AS t0_r7, "users"."█████████" AS t0_r8, "users"."█████████" AS t0_r9, "users"."█████████" AS t0_r10, "users"."█████████" AS t0_r11, "users"."█████████" AS t0_r12, "users"."█████████" AS t0_r13, "users"."█████████" AS t0_r14, "users"."█████████" AS t0_r15, "users"."█████████" AS t0_r16, "users"."█████████" AS t0_r17, "users"."█████████" AS t0_r18, "users"."█████████" AS t0_r19, "users"."█████████" AS t0_r20, "users"."█████████" AS t0_r21, "users"."█████████" AS t0_r22, "users"."█████████" AS t0_r23, "users"."█████████" AS t0_r24, "users"."█████████" AS t0_r25, "users"."█████████" AS t0_r26, "users"."█████████" AS t0_r27, "users"."█████████" AS t0_r28, "users"."█████████" AS t0_r29, "users"."█████████" AS t0_r30, "users"."█████████" AS t0_r31, "users"."█████████" AS t0_r32, "users"."█████████" AS t0_r33, "users"."█████████" AS t0_r34, "users"."█████████" AS t0_r35, "users"."█████████" AS t0_r36, "users"."█████████" AS t0_r37, "users"."█████████" AS t0_r38, "users"."█████████" AS t0_r39, "users"."█████████" AS t0_r40, "users"."█████████" AS t0_r41, "users"."█████████" AS t0_r42, "users"."█████████" AS t0_r43, "users"."█████████" AS t0_r44, "users"."█████████" AS t0_r45, "users"."█████████" AS t0_r46, "users"."█████████" AS t0_r47, "users"."█████████" AS t0_r48, "users"."█████████" AS t0_r49, "users"."█████████" AS t0_r50, "users"."█████████" AS t0_r51, "users"."█████████" AS t0_r52, "users"."█████████" AS t0_r53, "users"."█████████" AS t0_r54, "users"."█████████" AS t0_r55, "users"."█████████" AS t0_r56, "users"."█████████" AS t0_r57, "users"."█████████" AS t0_r58, "users"."█████████" AS t0_r59, "users"."█████████" AS t0_r60, "users"."█████████" AS t0_r61, "users"."█████████" AS t0_r62, "users"."█████████" AS t0_r63, "users"."█████████" AS t0_r64, "users"."█████████" AS t0_r65, "users"."█████████" AS t0_r66, "users"."█████████" AS t0_r67, "users"."█████████" AS t0_r68, "users"."█████████" AS t0_r69, "users"."█████████" AS t0_r70, "users"."█████████" AS t0_r71, "users"."█████████" AS t0_r72, "users"."█████████" AS t0_r73, "users"."█████████" AS t0_r██, "users"."█████████" AS t0_r75, "users"."█████████" AS t0_r76, "users"."█████████" AS t0_r77, "addresses"."█████████" AS t1_r0, "addresses"."█████████" AS t1_r1, "addresses"."█████████" AS t1_r2, "addresses"."█████████" AS t1_r3, "addresses"."█████████" AS t1_r4, "addresses"."█████████" AS t1_r5, "addresses"."█████████" AS t1_r6, "addresses"."█████████" AS t1_r7, "addresses"."█████████" AS t1_r8, "addresses"."█████████" AS t1_r9, "addresses"."█████████" AS t1_r10, "addresses"."█████████" AS t1_r11, "addresses"."█████████" AS t1_r12, "addresses"."█████████" AS t1_r13, "addresses"."█████████" AS t1_r14, "addresses"."█████████" AS t1_r15, "addresses"."█████████" AS t1_r16, "addresses"."█████████" AS t1_r17, "addresses"."█████████" AS t1_r18, "addresses"."█████████" AS t1_r19, "addresses"."█████████" AS t1_r20 FROM "users" INNER JOIN "addresses" ON "addresses"."█████████" = "users"."█████████" WHERE "addresses"."█████████" = $1 AND "users"."█████████" IN (██) ORDER BY "users"."█████████" ASC [["id", ██]]
User.joins(:addresses).where(addresses: {id: ██}).first.addresses
User Load (2.6ms) SELECT "users"."█████████", "users"."█████████", "users"."█████████", "users"."█████████", "users"."█████████", "users"."█████████", "users"."█████████", "users"."█████████", "users"."█████████", "users"."█████████", "users"."█████████", "users"."█████████", "users"."█████████", "users"."█████████", "users"."█████████", "users"."█████████", "users"."█████████", "users"."█████████", "users"."█████████", "users"."█████████", "users"."█████████", "users"."█████████", "users"."█████████", "users"."█████████", "users"."█████████", "users"."█████████", "users"."█████████", "users"."█████████", "users"."█████████", "users"."█████████", "users"."█████████", "users"."█████████", "users"."█████████", "users"."█████████", "users"."█████████", "users"."█████████", "users"."█████████", "users"."█████████", "users"."█████████", "users"."█████████", "users"."█████████", "users"."█████████", "users"."█████████", "users"."█████████", "users"."█████████", "users"."█████████", "users"."█████████", "users"."█████████", "users"."█████████", "users"."█████████", "users"."█████████", "users"."█████████", "users"."█████████", "users"."█████████", "users"."█████████", "users"."█████████", "users"."█████████", "users"."█████████", "users"."█████████", "users"."█████████", "users"."█████████", "users"."█████████", "users"."█████████", "users"."█████████", "users"."█████████", "users"."█████████", "users"."█████████", "users"."█████████", "users"."█████████", "users"."█████████", "users"."█████████", "users"."█████████", "users"."█████████", "users"."█████████", "users"."█████████", "users"."█████████", "users"."█████████", "users"."█████████" FROM "users" INNER JOIN "addresses" ON "addresses"."█████████" = "users"."█████████" WHERE "addresses"."█████████" = $1 ORDER BY "users"."█████████" ASC LIMIT 1 [["id", ██]]
Address Load (0.9ms) SELECT "addresses".* FROM "addresses" WHERE "addresses"."█████████" IN (██) ORDER BY updated_at DESC
User.references(:addresses).includes(:addresses).where(addresses: {id: ██}).first.addresses
SQL (0.6ms) SELECT DISTINCT "users"."█████████", "users"."█████████" AS alias_0 FROM "users" LEFT OUTER JOIN "addresses" ON "addresses"."█████████" = "users"."█████████" WHERE "addresses"."█████████" = $1 ORDER BY "users"."█████████" ASC LIMIT 1 [["id", ██]]
SQL (0.7ms) SELECT "users"."█████████" AS t0_r0, "users"."█████████" AS t0_r1, "users"."█████████" AS t0_r2, "users"."█████████" AS t0_r3, "users"."█████████" AS t0_r4, "users"."█████████" AS t0_r5, "users"."█████████" AS t0_r6, "users"."█████████" AS t0_r7, "users"."█████████" AS t0_r8, "users"."█████████" AS t0_r9, "users"."█████████" AS t0_r10, "users"."█████████" AS t0_r11, "users"."█████████" AS t0_r12, "users"."█████████" AS t0_r13, "users"."█████████" AS t0_r14, "users"."█████████" AS t0_r15, "users"."█████████" AS t0_r16, "users"."█████████" AS t0_r17, "users"."█████████" AS t0_r18, "users"."█████████" AS t0_r19, "users"."█████████" AS t0_r20, "users"."█████████" AS t0_r21, "users"."█████████" AS t0_r22, "users"."█████████" AS t0_r23, "users"."█████████" AS t0_r24, "users"."█████████" AS t0_r25, "users"."█████████" AS t0_r26, "users"."█████████" AS t0_r27, "users"."█████████" AS t0_r28, "users"."█████████" AS t0_r29, "users"."█████████" AS t0_r30, "users"."█████████" AS t0_r31, "users"."█████████" AS t0_r32, "users"."█████████" AS t0_r33, "users"."█████████" AS t0_r34, "users"."█████████" AS t0_r35, "users"."█████████" AS t0_r36, "users"."█████████" AS t0_r37, "users"."█████████" AS t0_r38, "users"."█████████" AS t0_r39, "users"."█████████" AS t0_r40, "users"."█████████" AS t0_r41, "users"."█████████" AS t0_r42, "users"."█████████" AS t0_r43, "users"."█████████" AS t0_r44, "users"."█████████" AS t0_r45, "users"."█████████" AS t0_r46, "users"."█████████" AS t0_r47, "users"."█████████" AS t0_r48, "users"."█████████" AS t0_r49, "users"."█████████" AS t0_r50, "users"."█████████" AS t0_r51, "users"."█████████" AS t0_r52, "users"."█████████" AS t0_r53, "users"."█████████" AS t0_r54, "users"."█████████" AS t0_r55, "users"."█████████" AS t0_r56, "users"."█████████" AS t0_r57, "users"."█████████" AS t0_r58, "users"."█████████" AS t0_r59, "users"."█████████" AS t0_r60, "users"."█████████" AS t0_r61, "users"."█████████" AS t0_r62, "users"."█████████" AS t0_r63, "users"."█████████" AS t0_r64, "users"."█████████" AS t0_r65, "users"."█████████" AS t0_r66, "users"."█████████" AS t0_r67, "users"."█████████" AS t0_r68, "users"."█████████" AS t0_r69, "users"."█████████" AS t0_r70, "users"."█████████" AS t0_r71, "users"."█████████" AS t0_r72, "users"."█████████" AS t0_r73, "users"."█████████" AS t0_r██, "users"."█████████" AS t0_r75, "users"."█████████" AS t0_r76, "users"."█████████" AS t0_r77, "addresses"."█████████" AS t1_r0, "addresses"."█████████" AS t1_r1, "addresses"."█████████" AS t1_r2, "addresses"."█████████" AS t1_r3, "addresses"."█████████" AS t1_r4, "addresses"."█████████" AS t1_r5, "addresses"."█████████" AS t1_r6, "addresses"."█████████" AS t1_r7, "addresses"."█████████" AS t1_r8, "addresses"."█████████" AS t1_r9, "addresses"."█████████" AS t1_r10, "addresses"."█████████" AS t1_r11, "addresses"."█████████" AS t1_r12, "addresses"."█████████" AS t1_r13, "addresses"."█████████" AS t1_r14, "addresses"."█████████" AS t1_r15, "addresses"."█████████" AS t1_r16, "addresses"."█████████" AS t1_r17, "addresses"."█████████" AS t1_r18, "addresses"."█████████" AS t1_r19, "addresses"."█████████" AS t1_r20 FROM "users" LEFT OUTER JOIN "addresses" ON "addresses"."█████████" = "users"."█████████" WHERE "addresses"."█████████" = $1 AND "users"."█████████" IN (██) ORDER BY "users"."█████████" ASC [["id", ██]]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment