我有两个MySQL表:
offers:
id | rid | name
------------------------------
1 | 1234 | mary
2 | 1235 | john
3 | 5342 | liam
和
geo_in_off:
offer_id | geo_id
------------------------------
1 | 1234
2 | 1235
3 | 5342
我需要在我的网站上制作一张表格,如:
1(number) | 1234(rid) | name(name) | 1(geo_id)
但是我遇到了麻烦。
我的代码是:
require('../config.php');
echo "<table class=\"offer-table\">";
echo "<tr><th id=\"off_col_num\">№</th><th id=\"off_col_id\">offer ID</th><th id=\"off_col_name\">Название</th><th id=\"off_col_geo\">Geo</th></tr>";
$i = 1;
$sql ="SELECT * FROM `offers` ORDER BY `rid` JOIN geo_in_off ON geo_in_off.id = offers.id";
$result = mysql_query($sql) or die(mysql_error());
while ($row=mysql_fetch_assoc($result)) {
echo "<tr><td>" . $i . "</td><td>" . $row['rid'] . "</td><td>" .
$row['name'] . "</td><td>" .$i . "</td></tr>" ;
$i++;
}
echo "</table>";
我遇到了MySQL synaxis的问题以及如何从2个表中获取数据并将结果放在一个&#34; while循环&#34;中的逻辑。
所以我需要在一个中加入2个查询:
$sql ="SELECT * FROM `offers` ORDER BY `rid`";
$sql ="SELECT `geo_id` FROM `geo_in_off` WHERE `offer_id` = '$each_offer_id_from_offers'";
可选但不必要:
$sql ="SELECT `name` FROM `geo` WHERE `id` = '$geo_id_got_from_table_geo_in_off'";
获取一张表格,我可以获得优惠ID,优惠名称和优惠地址。
答案 0 :(得分:2)
尝试此查询,它确实可以帮助您(完整加入查询)
SELECT offers.*, geo_in_off.geo_id FROM offers,
geo_in_off WHERE offers.id=geo_in_off.offer_id
答案 1 :(得分:1)
更改
$sql ="SELECT * FROM `offers` ORDER BY `rid` JOIN geo_in_off ON geo_in_off.id = offers.id";
要
$sql ="SELECT * FROM `offers` JOIN `geo_in_off` ON `geo_in_off`.`offer_id` = `offers`.`id` ORDER BY `offers`.`rid`";
1)您的查询中的ORDER BY顺序错误
SELECT column1,column2,...
FROM table_name
ORDER BY column1,column2,... ASC | DESC;
2)而不是geo_in_off.id = offers.id
使用geo_in_off.offer_id = offers.id
答案 2 :(得分:0)
尝试此查询:
$sql = 'SELECT of.id, of.rid, of.name, geo.id
FROM of.offers
INNER JOIN of.id = geo.offer_id
WHERE offer_id = \''.$each_offer_id_from_offers.'\' order by of.rid'