我有两个数据库fruit
和fruit-prices
(为了争辩)。
在fruit
中有两列id | name
水果表
id | name
1 | Apple
2 | Banana
在fruit_prices
中有三列id | fruit_id | price
,其中fruit_id
是FOREIGN KEY
引用。
id | fruit_id | price
1 | 1 | £2.00
2 | 2 | £3.00
现在我有一个PHP函数,它将打印出一个表行和带有数据库信息的单元格,但是目前如果我打印两个水果,我的表就像这样。
Name | Price
1 | £2.00
2 | £3.00
PHP代码:
$query = mysqli_query($conn, "SELECT * FROM fruits ");
while($row = mysqli_fetch_assoc($query)) {
$name = $row['fruit_id']; //for comma separation
$price = $row['price'];
echo "<tr>";
echo "<td>" .$name. "</td>" .
"<td>" .$price. "</td>";
echo "</tr>";
}
是否有一种优雅的方式可以检索水果的名称(即1 = Apple,2 =香蕉)。而不是使用每个水果的唯一ID。
那么我的表格看起来就像这样
Name | Price
Apple | £2.00
...
我希望这有道理吗?我是RD概念的新手。这是一个非常简单的例子,并不反映我的整个项目,所以我只是想知道这是否可以实现?
答案 0 :(得分:3)
这可以通过连接两个表来完成。用下面的一个更改你的sql查询。我认为它将解决你的问题。
&#34; SELECT fruit
。name
,fruit_prices
。price
FROM fruit
,fruit_prices
WHERE fruit_prices
。 fruit_id
= fruit
。id
&#34 ;;
答案 1 :(得分:1)
您可能希望使用连接并指定要选择的列。
SELECT f.name, fp.price FROM fruit as f
JOIN fruit-prices as fp ON f.id=fp.fruit_id;
答案 2 :(得分:0)
使用JOIN
:
SELECT * FROM fruits a JOIN fruits-prices b ON b.fruit_id = a.id
对于更友好的列名,您可以添加列别名并进一步使用它们。
答案 3 :(得分:0)
你说他们在两个数据库中,但我认为它可能只是两个表。如果是这样的话:
select * from fruit f
left outer join fruit-prices fp
on f.id = fp.fruit_id
左外连接确保如果水果没有价格,它将被返回将作为价格为空。如果您不希望用内连接替换它。
答案 4 :(得分:0)
使用JOIN
可以满足您的需求。
"SELECT `p`.`price`, `f`.`name` FROM `fruit_prices` `p`
JOIN `fruits` `f` ON `f`.`id` = `p`.`fruit_id`"
要小心 - 在这里使用SELECT *
会导致错误,因为两个表都有id
字段,并且查询会中断。
答案 5 :(得分:0)
您需要在表之间进行连接,
SELECT f.name, fp.price
FROM fruit f
INNER JOIN fruit_price fp ON f.id = fp.fruit_id
答案 6 :(得分:0)
嗯,你需要看看SQL Joins
query = mysqli_query($conn, "SELECT FRUIT.name,FRUIT_PRICES.price FROM fruits INNER JOIN FRUIT_PRICES ON FRUIT.id = FRUIT_PRICES.fruit.id");
while($row = mysqli_fetch_assoc($query)) {
$name = $row['name']; //for comma separation
$price = $row['price'];
echo "<tr>";
echo "<td>" .$name. "</td>" .
"<td>" .$price. "</td>";
echo "</tr>";
}
我写的意思是:“在FRUIT和FRUIT_PRICES中选择FRUIT.Name,FRUIT_PRICES.price,考虑到FRUITS.id与FRUIT_PRICES.id_fruit有关”
答案 7 :(得分:-1)
建议:您可以拥有一个表格,其中包含3列id,fruit_name,price。
表格结构:
SELECT fruits.id, name, price
FROM fruits, fruit-prices
WHERE fruit_id=fruits.id;