Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 361
  • Last Modified:

Join two table without like primary key

I have a clients table and a address table that do not share a common primary key. How do I join these? See attached photo.
SQL1.JPG
0
bjbrown
Asked:
bjbrown
  • 3
  • 2
  • 2
1 Solution
 
Jim HornMicrosoft SQL Server Developer, Architect, and AuthorCommented:
I dunno.  Close your eyes and use The Force?  Smoke, Magic, and Mirrors?  Mind reading?

Seriously, there are no columns these two tables have in common, at least in the image, so I don't see how you can pull this off.
0
 
Brian CroweCommented:
Either you are missing a joining table, the Address table has a ClientID, or the Client table has an AddressID.  Otherwise you're SOL
0
 
bjbrownAuthor Commented:
Sounds like I  need a table that has a field from the other two.
0
 [eBook] Windows Nano Server

Download this FREE eBook and learn all you need to get started with Windows Nano Server, including deployment options, remote management
and troubleshooting tips and tricks

 
Brian CroweCommented:
It depends on the relationship you want between the two tables?

If you want a client to be able to have one or more addresses then place the ClientID in the Address table.

If you want multiple clients to be able to share the same address then place the AddressID in the Client table (unlikely).

If you want a many-to-many relationship where a single address could be shared by multiple clients and clients can have multiple address then Yes, you will need to create an intermediary join table.

CREATE TABLE ClientAddress
(
   ClientAddressID INT IDENTITY(1,1)  --optional
   ClientID INT NOT NULL,
   AddressID INT NOT NULL,
   Label VARCHAR(100)  --optional
)
0
 
bjbrownAuthor Commented:
Okay perhaps I'm not describing this clearly, this is only a select where we are trying to pull information out of two tables since the client table does not contain the client's address and the address table does not contain the same primary key.
0
 
Brian CroweCommented:
If this is an existing system and you are sure that there is a relationship between the two tables then yes you are missing something.  Based on the information you provided there is no relationship between the tables.

It would help if you would provide the actual table definitions instead of incomplete screenshots.
0
 
Jim HornMicrosoft SQL Server Developer, Architect, and AuthorCommented:
<Wild guesses>

Scroll down to the bottom of the bottom of each table and see if the Clients table has an Address ID column, or the Address table has a ClientsID.

Search through the database to see if there is a ClientsAddress (or something like it) table that is a M:M between Clients and Addresses.

Ask the source of this data how the two tables are related, and feel free to smack them if their response is 'they're not related'.
0

Featured Post

What is SQL Server and how does it work?

The purpose of this paper is to provide you background on SQL Server. It’s your self-study guide for learning fundamentals. It includes both the history of SQL and its technical basics. Concepts and definitions will form the solid foundation of your future DBA expertise.

  • 3
  • 2
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now