SQL - 如何从联合表中获取第一个和最后一个记录?
SELECT * FROM (
SELECT id_product, picture_url, product_name, product_price, tracking_link, '$ecommerce2->nama_ecommerce' AS table_identity FROM table1 WHERE product_name LIKE '%$search%'
UNION
SELECT id_product, picture_url, product_name, product_price, tracking_link, '$ecommerce2->nama_ecommerce' AS table_identity FROM table2 WHERE product_name LIKE '%$search%'
) AS big_table ORDER BY big_table.product_price DESC
LIMIT 1
如何从上面的SQL获取第一个和最后一个记录?SQL - 如何从联合表中获取第一个和最后一个记录?
只是在desc
(最后一条记录)和asc
(对于第一条记录)之间切换,只有一条记录在 和limit 1
之间切换。
假设您的联盟被复制的一个原因:
SELECT * FROM (
SELECT id_product, picture_url, product_name, product_price, tracking_link, '$ecommerce2->nama_ecommerce' AS table_identity FROM table1 WHERE product_name LIKE '%$search%'
UNION ALL
SELECT id_product, picture_url, product_name, product_price, tracking_link, '$ecommerce2->nama_ecommerce' AS table_identity FROM table2 WHERE product_name LIKE '%$search%'
) AS big_table1 ORDER BY product_price LIMIT 1
UNION
SELECT * FROM (
SELECT id_product, picture_url, product_name, product_price, tracking_link, '$ecommerce2->nama_ecommerce' AS table_identity FROM table1 WHERE product_name LIKE '%$search%'
UNION ALL
SELECT id_product, picture_url, product_name, product_price, tracking_link, '$ecommerce2->nama_ecommerce' AS table_identity FROM table2 WHERE product_name LIKE '%$search%'
) AS big_table2 ORDER BY product_price DESC LIMIT 1
对不起,UNION来自不同的表格。我改变了我的帖子。谢谢 –
我已经更新了我的答案。基础是一样的。您需要查询数据两次,获取第一条记录升序。然后对记录进行降序排序并获取第一条记录。 –
我曾试过这个查询。它显示“不正确的使用UNION和ORDER BY” –
(SELECT * FROM (
SELECT id_product, picture_url, product_name, product_price, tracking_link, '$ecommerce2->nama_ecommerce' AS table_identity FROM table1 WHERE product_name LIKE '%$search%'
UNION ALL
SELECT id_product, picture_url, product_name, product_price, tracking_link, '$ecommerce2->nama_ecommerce' AS table_identity FROM table2 WHERE product_name LIKE '%$search%'
) AS big_table1 ORDER BY product_price LIMIT 1)
UNION
(SELECT * FROM (
SELECT id_product, picture_url, product_name, product_price, tracking_link, '$ecommerce2->nama_ecommerce' AS table_identity FROM table1 WHERE product_name LIKE '%$search%'
UNION ALL
SELECT id_product, picture_url, product_name, product_price, tracking_link, '$ecommerce2->nama_ecommerce' AS table_identity FROM table2 WHERE product_name LIKE '%$search%'
) AS big_table2 ORDER BY product_price DESC LIMIT 1)
你的意思是没有'Limit'上呢?最多只能得到1条记录,因此结果是您的第一条和最后一条记录。 –
是没有限制或任何其他 –
是没有限制或任何其他,这是我的旧查询 所以需要一个查询,可以得到第一个和最后一个记录 谢谢@TahTatsumoto –