Solved

SQL Join Query

Posted on 2011-09-30
17
212 Views
Last Modified: 2012-05-12
Heyas,

I have double table join. I will give you an outline.

select *
From table1
Inner Join ON table2.column1 = table1.column1
Inner Join ON table3.column5 = table1.column5
This part works fine
where table3.address = 'asdf'
and table1.barcode = '1234'

comments:
table3.address is the column5 in table3
table1.barcode is column7 in table1.

The error I get entering the line:
and table1.barcode = '1234'  
The multi-part identifier "table1.barcode " could not be bound.

Is their workaround for this?

Any assistance would be much appreciated thank you.
0
Comment
Question by:Zack
  • 8
  • 3
  • 2
  • +4
17 Comments
 
LVL 11

Expert Comment

by:David Kroll
ID: 36891532
Are you sure the field is named "barcode" and not "bar code" or something else?
0
 

Author Comment

by:Zack
ID: 36891574
Yes I am sure it's labelled barcode.
0
 
LVL 11

Expert Comment

by:David Kroll
ID: 36891614
Can you run

EXEC sp_help table1

and post the second set of results?
0
VMware Disaster Recovery and Data Protection

In this expert guide, you’ll learn about the components of a Modern Data Center. You will use cases for the value-added capabilities of Veeam®, including combining backup and replication for VMware disaster recovery and using replication for data center migration.

 
LVL 18

Expert Comment

by:sventhan
ID: 36891616
open a new session and try your query again. or, please post describe your table1.
0
 
LVL 18

Expert Comment

by:lludden
ID: 36891619
Can you post the TSQL script to create the tables?
0
 

Author Comment

by:Zack
ID: 36891658
Hi heyas,

Table 1 has many columns 30 in all.

column1 is an ID column1, column5 (address), column7(barcode)

Can't run in any commands at the moment as I cannot to the database just posting this as query.

Thank you.
0
 
LVL 142

Expert Comment

by:Guy Hengel [angelIII / a3]
ID: 36891662
<Inner Join ON >

the code, as posted, is missing the table name in the JOIN part

select *
From table1
Inner Join table2 ON table2.column1 = table1.column1
Inner Join table3 ON table3.column5 = table1.column5

Open in new window

0
 

Author Comment

by:Zack
ID: 36891673
Hi Angell,

What do you mean?

Thank you.
0
 

Author Comment

by:Zack
ID: 36891684
The only common column between table3 an table1 in column 5.
0
 

Author Comment

by:Zack
ID: 36891747
Any other takers.

Thx.
0
 
LVL 142

Expert Comment

by:Guy Hengel [angelIII / a3]
ID: 36891944
I mean that in the SQL you posted, the TABLE NAME is missing in the JOIN syntax ... between JOIN and ON

you posted:
select *
From table1
Inner Join ON table2.column1 = table1.column1
Inner Join ON table3.column5 = table1.olumn5

I suggested:
select *
From table1
Inner Join table2 ON table2.column1 = table1.column1
Inner Join table3 ON table3.column5 = table1.column5
0
 
LVL 75

Expert Comment

by:Anthony Perkins
ID: 36895113
>>What do you mean?<<
It means your code does not compile.  It is missing code, we need to see the real query.
0
 

Author Comment

by:Zack
ID: 36895453
Hi Acperkins,

Can't to the database from where I am at the moment.
The structure of the code is as follows.

select *
From table1
Inner Join table2 ON table2.column1 = table1.column1 (Correction thanks to angellll)
Inner Join table3 ON table3.column5 = table1.column5
where table3.address = 'asdf'
and table1.barcode = '1234'

The error I get entering the line:
and table1.barcode = '1234'  
The multi-part identifier "table1.barcode " could not be bound.

Thank you.
0
 
LVL 142

Accepted Solution

by:
Guy Hengel [angelIII / a3] earned 250 total points
ID: 36895991
you still must not show everything.

one explanation could be that you are using table aliases ...
select *
From table1 t1
Inner Join table2 t2 ON t2.column1 = t1.column1  
Inner Join table3 t3 ON t3.column5 = t1.column5
where t3.address = 'asdf'
and table1.barcode = '1234'   <<< this part would error

fix:
select *
From table1 t1
Inner Join table2 t2 ON t2.column1 = t1.column1  
Inner Join table3 t3 ON t3.column5 = t1.column5
where t3.address = 'asdf'
and t1.barcode = '1234'   <<< this will then work
0
 

Author Comment

by:Zack
ID: 36896029
No I am using in any tables aliases but I will certainly give that a shot and see if it works.

Thank you.
0
 
LVL 23

Expert Comment

by:Racim BOUDJAKDJI
ID: 36896277
@hellworld12345

Your code is not valid TSQL instruction.  Do as angelIII and acperkins suggested.
0
 

Author Closing Comment

by:Zack
ID: 36923609
Yup that worked my apologies for getting back to your earlier I've been out in the mountains i.e. no net access.

Thanks.
0

Featured Post

Ransomware: The New Cyber Threat & How to Stop It

This infographic explains ransomware, type of malware that blocks access to your files or your systems and holds them hostage until a ransom is paid. It also examines the different types of ransomware and explains what you can do to thwart this sinister online threat.  

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Everyone has problem when going to load data into Data warehouse (EDW). They all need to confirm that data quality is good but they don't no how to proceed. Microsoft has provided new task within SSIS 2008 called "Data Profiler Task". It solve th…
This article explains how to reset the password of the sa account on a Microsoft SQL Server.  The steps in this article work in SQL 2005, 2008, 2008 R2, 2012, 2014 and 2016.
Via a live example, show how to extract information from SQL Server on Database, Connection and Server properties
Via a live example, show how to setup several different housekeeping processes for a SQL Server.

803 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question