Phonegap retrieve data from two table in sqlite - sqlite

I have a task to retrieve data from two tables, from table one: name,firstname,lastname and also retrieve their cities from a second table. In the second table I have foreign key as table one's id as tbl_id in second table. please reply me and advice me is joinquery support or not in phonegap.

Just use websql join query
tx.executeSql( 'SELECT * FROM table1 JOIN table2 ON table1.primary = table2.foreign',
[],nullHandler,errorHandler);
},errorHandler,successCallBack);
In sucessCallback Function query results will be returned.
For more understanding of webSql database look into here
Its in the phongap documentation how to implement local database in mobile this

Related

Kusto Query to merge tables

I am new here for Kusto Query Language. I am exploring few concepts of Azure Data Explorer and I would to like to write a function that performs the merge (as we do in SQL). I tried few queries, but data is only inserting as new records and this is creating the duplicate data in my ADX table.
Below is my requirement.
I have a employee_temp table, where I keep the data from different sources. Once data comes into this table, it should merge with my main table employee.
** When target table (employee) has a record already with empid, then perform update.
** When target table (employee) do not have a record with empid, then perform insert.
Sounds like you're looking for a materialized view with an arg_max aggregation.

Move data to production tables after Bulk Insert to stage table

I have a database normalized like the one on the picture bellow. I store the clients, the accounts and the postal address for each account. As you can notice, the Client-Account relationship type is many-to-many, there for the ClientAccount table.
Since I have a database with 100k Account records I'm considering the use of SQL Bulk Copy. I think that I could use a stage table with all the fields of the tables above, and then normalize the data.
My problem is that I don't know how to move the data to the production tables. How can I create a stored procedure to perform this job, after the bulk insert import?
PS: The database is for as ASP .Net Web Site with the EF enabled.
You must insert one table at a time in the right order
Address -> Account -> Client -> AccountClient
create the addresses:
Insert into Address(data)
Select distinct address_data From temp
Account
Inser Into Account(account_number, address_id)
Select t.account_number, a.id From temp t
Inner Join Address a on a.data = t.address_data
Client
Insert into Client(name, client_number)
Select distinctname, client_number From temp
Client Account
Inser Into ClientAccount(accountId, clientId)
Select a.accountId, c.clientId From temp t
Inner Join Client c on c.name = t.name and c.client_number = t.client_number
Inner Join Account a on a.account_number= t.account_number
Make sure:
you don't create duplicate if some of the data are already there
you match on rows between real and temp table on the right columns

sqlite: SELECTing with UNION when the other table does not exist

I have two sqlite3 databases which have tables with identical schemas and (possibly) overlapping data. For example a Temperature table in both databases. If I want to get all the columns from both tables combined I will first ATTACH the other database:
sqlite> ATTACH DATABASE 'old.sqlite' AS Old;
and then combine them with UNION like this:
sqlite> SELECT * FROM Temperature UNION SELECT * FROM Old.Temperature;
This works fine.
However sometimes there is just one table. For example for humidity I might have just one Humidity and no counterpart in the other database. In this case the query fails:
sqlite> SELECT * FROM Humidity UNION SELECT * FROM Old.Humidity;
SQL error: no such table: Old.Humidity
What I would like to get is all columns from the tables that do exist and not to fail just because the other table doesn't exist.
I don't know before hand which tables exist in which databases. I only have the table names from all the databases combined into one list. And the part of the codebase that's reading the data expects to get all the columns in one query.
It is not possible to create a query dyncamically in SQL.
(SQLite is designed to be used from within an application written in a 'real' programming language.)
You have to check beforehand whether the table exists (use PRAGMA table_info, or try if a query using that table works).
Then execute a query either with or without UNION.

how to make left join between two tables without relation in doctrine 1.2

I have two tables.
Table invitations
Columns:
id email created_at
Table orders
Columns:
id amount email created_at
i need to create a DQL to select all the fields from invitations table and left join with count of all the record in orders table with on email
NOTE I need to view the results so I need to paginate the results and there is no relation between the two tables
Create the DQL query:
$q = Doctrine_Query::create()
->select('i.*')
->from('invitations i')
->leftJoin('i.orders o ON i.email=o.email')
;
You may add more conditions:
->having('COUNT(email) > 10')
->groupBy('i.email')
->orderBy('i.email ASC');
Print the result SQL query to check for errors:
echo $q->getSqlQuery();
Execute the DQL query:
$vrows = $q->execute(array(), Doctrine_Core::HYDRATE_ARRAY); //For speed use Hydrate_Array, read the documentation about hydrating methods. If not specified you will get a list of records objects.
Another way would be like ilSavo and Michal said, create your own query or write in your schema the relation between those two tables.
A third way would be to directly send the SQL raw query to the database, without using the ORM Doctrine:
$oConnection = Doctrine_Manager::getInstance()->getConnectionForComponent($sModuleName);
$vrecords = $oCurrentConnection->fetchAssoc($sSQLquery);
In order to paginate your results take a look here.
Remember to use try and catch in order to get exceptions.

SQL Server Creating Indexes Catalogs with joined tables

So at the moment I am building a Advanced Search in .NET, and getting the results is just proving a bit slow so was looking at creating indexes on the tables.
I.e went to tables and define full text index.
So now I have my catalog with the 5 tables and selected columns.
But I cant see how this catalog actually joins these tables ?
I.e. in my "slow" stored procedure I could have
select *
from table1
inner join table2 ON table1.id = table2.linkedID
etc for other tables ?
and now I guess I can go
select * from catalogName
but how does catalogName know what columns to join for the inner join etc
You don't query the fultext catalog directly, you use the fulltext functions in your query, like CONTAINS, CONTAINSTABLE, FREETEXT and FREETEXTTABLE:
SELECT field, field, field
FROM table
WHERE CONTAINS(field, 'some text');
Full text has nothing to do with joining tables and if your query is slow because you join 5 tables then FT is unlikely to help at all.

Resources