我正在寻找一种方法来将一个表连接到一个查询中,该查询可以使用代码解析出来,而不需要任何关于表的先验知识,除了连接方法(所以我不能手动添加CONCAT("'builder:'",occupations.builder,","'trader:'",occupations.trader,")
,因为我不知道实际的表名)。
表1:客户端
| id | client_id | name | age |
| 0 | 0001 | john | 20 |
| 1 | 0002 | bob | 22 |
表2:职业
| id | client_id | builder | trader |
| 0 | 0001 | 0 | 1 |
| 1 | 0002 | 1 | 0 |
示例查询
SELECT *, CONCAT(#some query here#) AS 'occupation' FROM client
LEFT JOIN occupation
ON client.client_id = occupations.client_id
GROUP BY client.client_id
ORDER BY client.client_id ASC
输出
| id | client_id | name | age | occupation |
| 0 | 0001 | john | 20 | 'builder':0, 'trader':1 |
| 1 | 0002 | bob | 22 | 'builder':0, 'trader':1 |
1条答案
按热度按时间js4nwp541#
不需要
#some query here#
,只需使用已知的列名(尽管是硬编码的,正如前面的注解中提到的那样)和CONCAT
中的查询值。因此,知道了这一点,这个修改后的
CONCAT
示例与您的查询:(note我还修改了
SELECT *,
部分,使其具有相同的列,以匹配您的输出示例)给出输出:
这里有一个上面例子的dbfiddle来给予一下。