我有一个包含两个表的数据库:
products_attributes ( id , image )
options_values ( id , text )
两个表中的id值相同。现在我需要根据两个表中相同的id输出文本和图像。
然后可能将其基于循环。我已经创建了这样的东西,但它无法正常工作。
$sqlquery = "SELECT * FROM products_attributes JOIN options_values WHERE BY
id=id ASC LIMIT 0,40";
$sqlresult = @mysql_query($sqlquery);
while ($content = mysql_fetch_array($sqlresult, MYSQL_NUM)) {
echo "<img src='$content[1]'/> $content[2]";
}
@EDIT
所以查询最终会像这样,但我无法获取要显示的attributes_image(表列名)。然而,它确实可以使用数值系统。
$sqlquery = "SELECT * FROM zen_products_attributes pa JOIN zen_products_options_values ov ON pa.options_values_id = ov.products_options_values_id LIMIT 0,40;";
$sqlresult = @mysql_query ($sqlquery);
while ($content = mysql_fetch_array($sqlresult, MYSQL_NUM)){
echo $content['attributes_image'];
;}
答案 0 :(得分:2)
使用
$sqlquery = "SELECT * FROM products_attributes JOIN options_values
ON products_attributes.id=options_values.id ASC LIMIT 0,40";
答案 1 :(得分:1)
1:当您加入同一列时,需要为表使用别名 名称,以避免ambiguity.i.e'id = id'是错误的。
2.Syntax错误。在mysql中没有'WHERE BY'。
$sqlquery = "SELECT * FROM
products_attributes pa
JOIN options_values ov
on pa.id=ov.id ASC LIMIT 0,40";
编辑答案:
while ($content = mysql_fetch_array($sqlresult, MYSQL_NUM)){
echo $content['attributes_image'];
;}
- ^(额外的半冒号,删除此)
答案 2 :(得分:0)
如果您有相同名称的字段,请为它们添加别名。
SELECT p.`desc` as description, v.`desc` FROM products_attributes as p
JOIN options_values as v ON p.id=v.id
ASC LIMIT 0,40
答案 3 :(得分:0)
SELECT
*
FROM
products_attributes pa
JOIN
options_values ov
ON
pa.id = ov.id
LIMIT
0,40;
答案 4 :(得分:0)
SELECT * FROM products_attributes AS pa JOIN options_values AS ov ON pa.id=ov.id ORDER BY ov.id ASC LIMIT 0,40