[英]How to select three table with same column name but different values
嗨,我很困惑要選擇 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>
嘗試使用內連接
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
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
結果
select table1.id,table1.value, table1.price,table2.price,table3.price
從 table1 內連接 table2 上 table1.value=table2.value 內連接 table3 上 table2.value=table3.value
您需要做的是使用稱為主鍵和外鍵的一致值對表執行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`
輸出:
更多關於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']
等。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.