mysql使用INNER JOIN选择多个表?

时间:2011-04-12 08:18:20

标签: mysql select inner-join

我想选择几个表的所有字段并单独获取结果,但mysql将所有行一起返回:

SELECT prod_product.*
  ,pub_comment.* 
FROM prod_product 
INNER JOIN pub_comment ON (prod_product.id = pub_comment.itemId) 
WHERE prod_product.id=7744

有什么方法可以分别获取每个表行吗?

我尝试@prod:=prod_product.*@comment:=pub_comment.*但是mysql不允许我存储超过1行。

2 个答案:

答案 0 :(得分:1)

执行两个查询:

select * from prod_product WHERE prod_product.id=7744

select * from pub_comment WHERE pub_comment.itemId=7744

单个查询始终返回包含两个表字段的单行 无论如何:在一行中将列组合在一起的问题是什么?如果您的姓名有问题,可以使用别名。

答案 1 :(得分:0)

SELECT @prod:= CONCAT_WS(',',prod_product.field1,prod_product.field2,...)
  ,@comment:= CONCAT_WS(' ',pub_comment.field1,pub_comment.field2,....) 
FROM prod_product 
INNER JOIN pub_comment ON (prod_product.id = pub_comment.itemId) 
WHERE prod_product.id = 7744

请注意,CONCAT_WS会将您的字段分开,而CONCAT只会将您的字段粉碎在一起。