2016-12-17 72 views
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 
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 - 如何從聯合表中獲取第一個和最後一個記錄?

+0

你的意思是沒有'Limit'上呢?最多隻能得到1條記錄,因此結果是您的第一條和最後一條記錄。 –

+0

是沒有限制或任何其他 –

+0

是沒有限制或任何其他,這是我的舊查詢 所以需要一個查詢,可以得到第一個和最後一個記錄 謝謝@TahTatsumoto –

回答

0

只是在desc(最後一條記錄)和asc(對於第一條記錄)之間切換,只有一條記錄在 和limit 1之間切換。

0

假設您的聯盟被複制的一個原因:

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 
+0

對不起,UNION來自不同的表格。我改變了我的帖子。謝謝 –

+0

我已經更新了我的答案。基礎是一樣的。您需要查詢數據兩次,獲取第一條記錄升序。然後對記錄進行降序排序並獲取第一條記錄。 –

+0

我曾試過這個查詢。它顯示「不正確的使用UNION和ORDER BY」 –

0
(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) 
相關問題