你好世界各地的主人,我在这里再次遇到一个问题:D
现在我想问一些简单的东西,但我真的是编程和sql的新手,所以需要更多的学习。
好吧,让我们来解决问题吧。我有一些像这样的SQL查询SELECT
eu_product.*,
eu_shop_display.display_name as dname,
eu_product_img.image_url as img
FROM eu_product
INNER JOIN eu_product_img on eu_product_img.product_id = eu_product.product_id
INNER JOIN eu_shop_display on eu_shop_display.display_id = eu_product.product_display
where eu_product.publish=1
and eu_product.shop_id=1
and eu_product.product_display IN (select display_id from eu_shop_display where parent_id=1)
or eu_product.product_display = 1
GROUP BY eu_product.product_id
ORDER BY eu_product.product_id DESC LIMIT 0, 10
问题在于
INNER JOIN eu_product_img on eu_product_img.product_id = eu_product.product_id
这样的表格
我需要在字段“列表”上使用订单ASC。
是SQL查询可以使用两个顺序,还是可以通过内连接添加顺序?我尝试添加
ORDER BY eu_product.product_id DESC, eu_product_img.listing ASC
但它不起作用:(
也许有人可以解释它的工作原理。
更新
&LT。也许我会做简单的查询
此产品表
此product_img表
这是一个结果
但“eu_product_img.listing ASC”未正确运行:(
我需要在product_id 1上的列表是1而不是4
见表product_img
我需要在加入之前先运行product_img.listing命令ASC。
正确的查询就像这样
SELECT eu_product.product_id,
(select img.listing from eu_product_img as img where img.product_id = eu_product.product_id order by img.listing ASC limit 1 ) as listing
FROM eu_product
where eu_product.shop_id=1
or eu_product.product_display = 2
GROUP BY eu_product.product_id
ORDER BY eu_product.product_id DESC LIMIT 0, 20
所以它不能使用内连接?
之前感谢。
方面, Stecy
答案 0 :(得分:1)
它正在发挥作用。您可以从屏幕截图中看到,它们首先按product_id排序,然后按列表排序。如果您只想通过列表进行订购,请执行ORDER BY eu_product_img.listing ASC
。如果您想通过列出产品进行订购,请按报表撤消订单。
Order by接受多个语句,但您的结果将按照您指定订单语句的顺序排序;)因此,如果列表是第一个,则结果按列表排序等等。