The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

SQL::Abstract::Plugin::TableAlias - automagical table aliasing

VERSION

Version 0.04

SYNOPSIS

use SQL::Abstract;

my $sql = SQL::Abstract->new->plugin('+TableAlias');
	
my ($stmt, @bind) = $sql->select({
	select => [ qw/one two three/, [qw/four five/], [qw/six seven eight/] ],
	from => [
		"already",
		-join => [
			aware => on => { one => "one" }
		],
		-join => {
			on => { two => { ">" => "other" } },
			to => "first",
			type => "left"
		}
	],
	where => {
		five => "A",
		six => "B",
		nine => "C"
	},
	order_by => [
		qw/one/,
		{ -asc => 'four' },
		{ -desc => [qw/three seven/] }
	],
});

produces:

SELECT 
	already.one,
	already.two,
	already.three,
	aware.four,
	aware.five,
	first.six,
	first.seven,
	first.eight 
FROM already AS already 
	JOIN aware AS aware ON already.one = aware.one 
	LEFT JOIN first AS first ON aware.two > first.other 
WHERE ( first.six = ? AND aware.five = ? AND already.nine = ? ) 
ORDER BY already.one, aware.four ASC, already.three DESC, first.seven DESC

setting talias:

my ($stmt, @bind) = $sql->select({
	talias => [qw/n i f/],
	select => [ qw/one two three/, [qw/four five/], [qw/six seven eight/] ],
	from => [
		"already",
		-join => [
			aware => on => { one => "one" }
		],
		-join => {
			on => { two => { ">" => "other" } },
			to => "first",
			type => "left"
		}
	],
	where => {
		five => "A",
		six => "B",
		nine => "C"
	},
	order_by => [
		qw/one/,
		{ -asc => 'four' },
		{ -desc => [qw/three seven/] }
	],
});

produces:

SELECT 
	n.one,
	n.two,
	n.three,
	i.four,
	i.five,
	f.six,
	f.seven,
	f.eight 
FROM already AS n 
	JOIN aware AS i ON n.one = i.one 
	LEFT JOIN first AS f ON i.two > f.other 
WHERE ( f.six = ? AND i.five = ? AND n.nine = ? ) 
ORDER BY n.one, i.four ASC, n.three DESC, f.seven DESC

you know who you are.

DESCRIPTION

This module is an extension of the SQL::Abstract::Plugin::ExtraClauses plugin, it's objective is to assist with the aliasing of tables.

AUTHOR

LNATION, <email at lnation.org>

BUGS

Please report any bugs or feature requests to bug-sql-abstract-plugin-tablealias at rt.cpan.org, or through the web interface at https://rt.cpan.org/NoAuth/ReportBug.html?Queue=SQL-Abstract-Plugin-TableAlias. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT

You can find documentation for this module with the perldoc command.

perldoc SQL::Abstract::Plugin::TableAlias

You can also look for information at:

ACKNOWLEDGEMENTS

LICENSE AND COPYRIGHT

I've not forgotten.

This software is Copyright (c) 2022 by LNATION.

This is free software, licensed under:

The Artistic License 2.0 (GPL Compatible)