allow us to combine data from multiple tables
- Inner Join
- Outer Join
- Left Outer Join
 
- Right Outer Join
| .md-e044334dc0{color:var(--tw-prose-body);--tw-prose-body:#374151;--tw-prose-headings:#111827;--tw-prose-lead:#4b5563;--tw-prose-links:#111827;--tw-prose-bold:#111827;--tw-prose-counters:#6b7280;--tw-prose-bullets:#d1d5db;--tw-prose-hr:#e5e7eb;--tw-prose-quotes:#111827;--tw-prose-quote-borders:#e5e7eb;--tw-prose-captions:#6b7280;--tw-prose-code:#111827;--tw-prose-pre-code:#e5e7eb;--tw-prose-pre-bg:#1f2937;--tw-prose-th-borders:#d1d5db;--tw-prose-td-borders:#e5e7eb;--tw-prose-invert-body:#d1d5db;--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:#9ca3af;--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:#9ca3af;--tw-prose-invert-bullets:#4b5563;--tw-prose-invert-hr:#374151;--tw-prose-invert-quotes:#f3f4f6;--tw-prose-invert-quote-borders:#374151;--tw-prose-invert-captions:#9ca3af;--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:#d1d5db;--tw-prose-invert-pre-bg:rgb(0 0 0 / 50%);--tw-prose-invert-th-borders:#4b5563;--tw-prose-invert-td-borders:#374151;--tw-prose-body:var | 
| import 'package:flutter/foundation.dart'; | |
| import 'package:flutter/material.dart'; | |
| import 'package:webview_dart/webview_dart.dart'; | |
| void main() { | |
| runApp(const MyApp()); | |
| } | |
| class MyApp extends StatelessWidget { | |
| const MyApp({super.key}); | 
| import { serve } from "https://deno.land/std/http/server.ts"; | |
| import { app } from "./routes/router.ts"; | |
| import { $env } from "./utils/env.ts"; | |
| serve(app.fetch, { | |
| port: $env.port, | |
| }); | 
| const len = +(Deno.args[0] ?? "32"); | |
| const buf = new Uint8Array(len); | |
| crypto.getRandomValues(buf); | |
| const base64 = btoa(String.fromCharCode(...buf)); | |
| console.log(base64); | 
| --[[ | |
| ===================================================================== | |
| ==================== READ THIS BEFORE CONTINUING ==================== | |
| ===================================================================== | |
| Kickstart.nvim is *not* a distribution. | |
| Kickstart.nvim is a template for your own configuration. | |
| The goal is that you can read every line of code, top-to-bottom, understand | 
| const std = @import("std"); | |
| pub fn build(b: *std.Build) void { | |
| const target = b.standardTargetOptions(.{}); | |
| const optimize = b.standardOptimizeOption(.{}); | |
| const exe = b.addExecutable(.{ | |
| .name = "ziglibsql", | |
| .root_source_file = b.path("src/main.zig"), | 
| /// A simple Result type for C inspired by Rust's Result type. | |
| /// Should work with any C version but only tested with C23. | |
| /// | |
| /// Example: | |
| /// | |
| /// ```c | |
| /// #include <stdio.h> // fprintf | |
| /// #include <stdlib.h> // exit | |
| /// #include <result.h> // this file | |
| /// | 
| const std = @import("std"); | |
| const log = std.log.scoped(.lexer); | |
| const Allocator = std.mem.Allocator; | |
| const ArenaAllocator = std.heap.ArenaAllocator; | |
| const utils = @import("utils.zig"); | |
| pub const tok = @import("token.zig"); | |
| pub const Token = tok.Token; | |
| arena: ArenaAllocator, | 
| src_dir ?= src | |
| build_dir ?= build/ | |
| main ?= main | |
| mode ?= debug | |
| arch ?= $(shell uname -m) | |
| os ?= $(shell uname -s | tr '[:upper:]' '[:lower:]') | |
| ifeq ($(os), linux) | |
| abi = musl |