Reputation: 111
Hi i'm so confused to select 3 table data value.
Ex: In table1:
Id value price <br>
1 101 30 <br>
2 102 40 <br>
3 103 50 <br>
In table 2
value price <br>
101 25 <br>
102 35 <br>
103 45 <br>
In table 3
value Price <br>
101 5% <br>
102 6% <br>
103 7% <br>
in this how can i get all price value with id
I need a result like
ID Price Price Price <br>
1 -- 30 -- 25 -- 5%<br>
2 -- 40 -- 35 -- 6%<br>
3 -- 50 -- 45 -- 7%<br>
Upvotes: 1
Views: 2179
Reputation: 2424
What you need to do is perform a JOIN
on your tables, using a coherent value known as primary and foreign key. The coherent values that links your tables together in this case is the column named value. So that's what you need to be using in your JOIN
SELECT
table1.id as TABLE1_ID,
table1.price as TABLE1_PRICE,
table2.price as TABLE2_PRICE,
table3.price as TABLE3_PRICE
FROM
table1
LEFT JOIN
table2 ON table1.`value` = table2.`value`
LEFT JOIN
table3 ON table2.`value` = table3.`value`
Outputs:
More about JOIN
's here.
Since you mentioned PHP in the comment section, try something like this:
$sql="SELECT
table1.id as TABLE1_ID,
table1.price as TABLE1_PRICE,
table2.price as TABLE2_PRICE,
table3.price as TABLE3_PRICE
FROM
table1
LEFT JOIN
table2 ON table1.`value` = table2.`value`
LEFT JOIN
table3 ON table2.`value` = table3.`value`"
$result_set=mysqli_query($conn, $sql);
$row=mysqli_fetch_array($conn, $result_set);
$rowcount=mysqli_num_rows($result_set);
$count=0;
while($rowcount > $count) {
$count++;
echo 'id: '.$row['id'].'<br />';
echo 'price: '.$row['price'].'<br />';
$row=mysqli_fetch_array($conn, $result_set);
}
Remember to include
your database connection file so that $conn
is accessible.
If it doesn't work initially, try to swap out the actual column names with the defined aliases, like so:
$row['id']
to $row['TABLE1_ID']
etc.
Upvotes: 0
Reputation: 13
select table1.id,table1.value, table1.price,table2.price,table3.price
from table1 inner join table2 on table1.value=table2.value inner join table3 on table2.value=table3.value
Upvotes: 0
Reputation: 37483
Try with inner join
select id,table1.value, table1.price as price1,table2.price as price2,table3.price as price3 from table1
inner join table2 on table1.value=table2.value
inner join table3 on table2.value=table3.value
Upvotes: 1
Reputation: 3
SELECT table1.id , table1.price , table2.price ,table3.price
FROM table1
JOIN table2 ON table.id = table2.id
JOIN table3 ON table.value = table3.value
Result
Upvotes: 0