James Sheridan wrote:
 > CREATE TABLE [Query] (
 >      [id] INTEGER  NOT NULL PRIMARY KEY AUTOINCREMENT,
 >      [creatorID] INTEGER  NOT NULL,
 >      [ownerID] INTEGER  NOT NULL,
 >      [type] VARCHAR  NOT NULL
 > );
 > CREATE TABLE [UserQuery] (
 >      [userID] INTEGER  NOT NULL,
 >      [queryID] INTEGER  NOT NULL
 > );
 >
 > SELECT       Q.*
 > FROM         Query Q,
 >              UserQuery UQ
 > WHERE                UQ.userID = '1' OR
 >              Q.type = 'a';

That's what trying to sanitize your data/queries gets you :)

The query should have been:

SELECT  Q.*
FROM    Query Q,
        UserQuery UQ
WHERE   Q.type = 'a' OR
        (Q.id = UQ.queryID AND
         UQ.userID = '1');

Basically, I want all queries of type "a" and all the ones that have a record 
in 
UserQuery with userID = 1 (queries shared to the user).

Related addendum:

In reading it appears that MySQL treats "," as a CROSS JOIN and implements it 
effectively as an INNER JOIN.
a) Is this correct?
and b) Is Sqlite acting the same or treating it as a true CROSS JOIN?

I suspect I'm writing things that I've used with MySQL for a while that are 
just 
not acting the same on Sqlite. That's fine, but I do want to know that if so :)

Thanks yet again.

--
James Sheridan
Tenable Network Security
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to