Jump to content
New Reality: Ads For Members ×

Join problem


TapeGun007

Recommended Posts

Prospects

---------

ProspectCode

ProspectBusinessName

ProspectLastContacted

ProspectCounty

ProspectZip

ProspectState

 

Territories

-----------

TerritoryID

TerritoryCode (Should always match ProspectCode above)

Territory (should always be a county name)

TerritoryState

TerritoryZip

 

I want to join these two tables under these circumstances:

 

(

ProspectCounty = Territory County AND ProspectState = TerritoryState

OR

ProspectZip = TerritoryZip

)

 

AND

ProspectLastContacted was last contacted 2 weeks ago.

 

Link to comment
https://forums.phpfreaks.com/topic/298113-join-problem/
Share on other sites

Here at least one of my attempts at this:

SELECT * 
                        FROM Prospects p
                        LEFT JOIN Territories t
                        ON p.ProspectCounty = t.Territory
                        WHERE (ProspectCounty = Territory
                            AND ProspectState = TerritoryState)
                        AND DATE(ProspectLastContacted) < DATE(NOW() - INTERVAL 14 DAY)
                        ORDER BY p.BusinessName

I won't use * once I get the right code, I realize that's not good.  I just realized I forgot to put the OR in there.

Link to comment
https://forums.phpfreaks.com/topic/298113-join-problem/#findComment-1520579
Share on other sites

try

SELECT *
FROM Prospects p
LEFT JOIN Territories t
    ON (ProspectCounty = Territory AND ProspectState = TerritoryState)
        OR (ProspectZip = TerritoryZip)
WHERE DATE(ProspectLastContacted) < CURDATE() - INTERVAL 14 DAY
ORDER BY p.BusinessName
Link to comment
https://forums.phpfreaks.com/topic/298113-join-problem/#findComment-1520580
Share on other sites

I attempted this just to see if I could narrow it down.  I realize I probably need to join based on State names and not counties.

 

 

"SELECT * 
                        FROM Prospects p
                        LEFT JOIN Territories t
                        ON 
                            p.ProspectState = t.TerritoryState
                        OR
                            t.ProspectZip = t.TerritoryZip
                        ";

 

This yields nothing.

Link to comment
https://forums.phpfreaks.com/topic/298113-join-problem/#findComment-1520581
Share on other sites

Hi Barand,

 

Just to clarify... in the table "Territories" there is either a Territory (County) AND State set, OR just a Zip code with no State or County set.

 

I checked my "Prospects" table to ensure they all have a "ProspectLastContacted" date that is at least 2 - 4 weeks ago.

 

I tried your code and it give me nothing in return.

Link to comment
https://forums.phpfreaks.com/topic/298113-join-problem/#findComment-1520582
Share on other sites

It's a confusing data model that you have there.

 

 

TerritoryCode (Should always match ProspectCode above)

 

That implies that each prospect can have many territories, but it seem more likely that a territory would have many prospects and the model would be more like this

+----------------------+             +--------------+
| Prospects            |             |  Territory   |
+----------------------+             +--------------+
| ProspectCode         |     +-------|  TerritoryID |
| ProspectBusinessName |     |       |  County      |
| ProspectLastContacted|     |       |  State       |
| TerritoryID          |>----+       |  Zip         |
+----------------------+             +--------------+
Link to comment
https://forums.phpfreaks.com/topic/298113-join-problem/#findComment-1520585
Share on other sites

Yeah, I realized when I first wrote that .... that it wasn't the ID that needed to match.  I get confused sometimes because normally I would match an ID.  But the Sales People are assigned a "ReferralCode" that is unique to them already.

 

It really goes like this:

 

 
Sales                 |  Prospects  |       |  Territories  |
--------------              ------------------      -----------------
SalesCode
 
 
Link to comment
https://forums.phpfreaks.com/topic/298113-join-problem/#findComment-1520593
Share on other sites

Somehow I clicked submit on accident.

 

I use a "code" because the code is unique to each sales person and is assigned by another database that I have no control over.  So instead of using a SalesID, I use a SalesCode, ProspectCode, and TerritoryCode.

 

So the SalesCode must match in the TerritoryCode.  In some rare cases I may let a sales person keep a lead that is not in their territory.

 

Here is how the table actually works:

tables.gif

Link to comment
https://forums.phpfreaks.com/topic/298113-join-problem/#findComment-1520594
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.