I am not that hot at regular expressions and it has made my little mind melt some what.
I am trying to find all the tables names in a query. So say I have the query
One workaround is to implement a naming convention on tables and views. Then the SQL statement can be parsed on the naming prefix.
For example:
SELECT tbltable1.one, tbltable1.two, tbltable2.three
FROM tbltable1
INNER JOIN tbltable2
ON tbltable1.one = tbltable2.three
Split whitespace to array:
("SELECT","tbltable1.one,","tbltable1.two,","tbltable2.three","FROM","tbltable1","INNER","JOIN","tbltable2","ON","tbltable1.one","=","tbltable2.three")
Get left of elements to period:
("SELECT","tbltable1","tbltable1","tbltable2","FROM","tbltable1","INNER","JOIN","tbltable2","ON","tbltable1","=","tbltable2")
Remove elements with symbols:
("SELECT","tbltable1","tbltable1","tbltable2","FROM","tbltable1","INNER","JOIN","tbltable2","ON","tbltable1","tbltable2")
Reduce to unique values:
("SELECT","tbltable1","tbltable2","FROM","INNER","JOIN","ON")
Filter on Left 3 characters = "tbl"
("tbltable1","tbltable2")