Php

如何選擇不同的一列並返回已區分的另一列數據?

  • January 24, 2018

我是 SQL 和 PHP 程式的新手,所以請耐心等待。:)

例如,我有一個包含三個欄位的表:ID, ITEMNAME, SIZE和這樣的數據:

+----+--------------+-------+
| ID |   ITEMNAME   | SIZE1 |
+----+--------------+-------+
|  1 | Blue T-shirt |   M   |
+----+--------------+-------+
|  2 | Blue T-shirt |   L   |
+----+--------------+-------+
|  3 |  Red T-shirt |   M   |
+----+--------------+-------+

我想使用 SQL 命令將其顯示為:

+--------------+-----------------+
|   ITEMNAME   |       SIZE      |
+--------------+-----------------+
| Blue T-shirt | select tag(M/L) |
+--------------+-----------------+
|  Red T-shirt |        M        |
+--------------+-----------------+

具有相同名稱的項目將合併並創建一個帶有大小列數據選項的選擇標籤。我怎樣才能做到這一點?

任何其他方式將不勝感激。

假設您使用的是 MySQL

這是我執行 SQL 的方法:

SELECT
ID,
ITEMNAME,
CONCAT("select tag(",GROUP_CONCAT(DISTINCT size
                                 ORDER BY size DESC
                                 SEPARATOR "/"), ')') AS SIZE
FROM items
GROUP BY ITEMNAME 

結果

| ID |      ITEMNAME |            SIZE |
|----|---------------|-----------------|
|  1 |  Blue T-shirt | select tag(M/L) |
|  3 |   Red T-shirt |   select tag(M) |

SQL小提琴

一旦你有它,PHP你就可以迭代它。

引用自:https://dba.stackexchange.com/questions/196097