Sorry, sent the previous draft email by mistake. Here is the correct one. Sounds a typical SQL pivot problem.
select Id, SIN, data.* from IdCard, (SELECT ID MAX(CASE WHEN name = 'Fname' THEN Value END) AS Fname, MAX(CASE WHEN name = 'Lname' THEN Value END) AS Lname, MAX(CASE WHEN name = 'Age' THEN Value END) AS Age, MAX(CASE WHEN name = 'Country' THEN Value END) AS Country FROM DATA_Table GROUP BY ID ) data To speed things up, you can split the SQLs into 2 for better performance. This is how DBSight does this. You can write your own SQLs, but generally it's the same methods. -- Chris Lu ------------------------- Instant Scalable Full-Text Search On Any Database/Application site: http://www.dbsight.net demo: http://search.dbsight.com Lucene Database Search in 3 minutes: http://wiki.dbsight.com/index.php?title=Create_Lucene_Database_Search_in_3_minutes DBSight customer, a shopping comparison site, (anonymous per request) got 2.6 Million Euro funding! On Fri, Feb 15, 2008 at 11:27 AM, lmctndi <[EMAIL PROTECTED]> wrote: > > Thanks for your reply. > > Your idea prompts more questions: > > > I understand what you are saying but don't know how to implement it. How do > you go about joining all rows of all the tables belonging to one person and > > > to index them so that I can actually use > "+Fname:john +County:USA" as a query? > > > Erick Erickson wrote: > > > > To expand a bit on Chris's first point: Take off your DB hat and put on > > your search hat <G>. It sounds like you have simply moved your database > > tables into Lucene and want to search across them. My rule is that > > whenever you find yourself trying to make Lucene act like a DB, you > > need to pause and reflect on your design..... > > > > So, from your example, you select all the data relating to id 1 from > > *all* your tables, and index that as a single document in Lucene. Very > > simplistically, your document for ID 1 has the fields > > Fname, Lname, Age, Country, and SIN. > > > > Your query is now very simple, > > +Fname:john +County:USA > > > > and to get the related SIN, you iterate over your hits > > and extract the SIN from each hit. > > > > If I understand your problem, that is <G>. > > > > In general, the strategy is to de-normalize your information > > when you build your index.... > > > > Best > > Erick > > > > -- > View this message in context: > http://www.nabble.com/Searching-for-multiple-criteria-%28accross-2-tables%29-tp15502657p15508362.html > Sent from the Lucene - Java Users mailing list archive at Nabble.com. > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]