如何选择三个列名相同但值不同的表

ijnw1ujt  于 2021-06-18  发布在  Mysql
关注(0)|答案(4)|浏览(289)

嗨,我很困惑选择3表数据值。
例:表1:

Id    value   price  <br> 
1     101     30   <br> 
2     102     40  <br>
3     103     50  <br>

在表2中

value       price   <br>
101       25  <br>
102       35   <br>
103       45  <br>

在表3中

value       Price   <br>
101          5%  <br>
102         6%   <br>
103         7%  <br>

在这种情况下,我如何获得所有的价格值与id
我需要这样的结果

ID    Price   Price   Price <br>
1  --   30  --   25 --     5%<br>
2  --    40  --   35   --   6%<br>
3  --    50  --   45   --   7%<br>
bvn4nwqk

bvn4nwqk1#

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

结果

eanckbw9

eanckbw92#

你需要做的是做一个 JOIN 在表中,使用一个称为主键和外键的一致值。在本例中,将表链接在一起的一致值是名为value的列。所以这就是你在工作中需要用到的 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

输出:
![](https://i.stack.imgur.com/TgDoM.png)
工作sql fiddle
更多关于 `JOIN` 在这里。
既然您在评论部分提到了php,请尝试以下操作:

$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);

}

记住 `include` 你的数据库连接文件 `$conn` 可访问。
如果最初不起作用,请尝试用定义的别名替换实际列名,如下所示: `$row['id']` 至 `$row['TABLE1_ID']` 等。
eeq64g8w

eeq64g8w3#

尝试内部连接

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
3yhwsihp

3yhwsihp4#

select table1.id,table1.value, table1.price,table2.price,table3.price

来自表1的表1内部联接表2。value=table2.value表2的表3内部联接表3.value=table3.value

相关问题