发布于2021-10-23 03:31 阅读(1208) 评论(0) 点赞(14) 收藏(2)
我想在下拉选择中列出一个字符串,例如:
姓名 | 间隔数 | 间隔
字符串中的这 3 个值需要从 2 个 MSSQL 表中填充。现在,我将深入解释表格以及我想要在下拉列表中作为字符串的结果。
这是表1:
+-------------+------+
| PK_Table1_ID| Name |
+-------------+------+
| 1 | Name1|
| 2 | Name2|
| 3 | Name3|
+-------------+------+
表2:
+--------------+--------------+-----------------+-----------+
| PK_Table2_ID | FK_Table1_ID | IntervallNumber | Intervall |
+--------------+--------------+-----------------+-----------+
| 1 | 2 | 1 | 168 |
| 2 | 2 | 2 | 336 |
| 3 | 2 | 3 | 500 |
| 4 | 2 | 4 | 672 |
| 5 | 2 | 5 | 840 |
| 6 | 2 | 6 | 1000 |
| 7 | 3 | 1 | 168 |
| 8 | 3 | 2 | 500 |
| 9 | 3 | 3 | 1000 |
+--------------+--------------+-----------------+-----------+
我想我需要多个 SQLSELECT
语句并将它们合并为一个字符串,以便为我的下拉列表填充它。
也许是这样的:
$sql = "SELECT Name FROM table1";
$sql2 = "SELECT IntervallNumber, Intervall
FROM table2
WHERE table1.PK_Table1_ID = table2.FK_Table1_ID";
$seperator = " | ";
$string = $sql . $seperator . $sql2;
输出字符串应详细如下:
echo "<option>" . $string . "</option>";
第一个选择选项:“Name2 | 6 | 168,336,500,672,840,100”
第二个选择选项:“Name3 | 3 | 168,500,100”
第三个值也需要是一个字符串。
最大的问题是如何正确声明 MSSQL 语句并将其组合到枚举中,仅在选择中,而不是在 SQL 列中,因为列是整数,不能nvarchar
与,
.
任何建议我如何解决这个问题?
你可以试试这个:
T-SQL 语句:
SELECT
A.name,
IntervallNumber = MAX(IntervallNumber),
Intervall = STUFF((
SELECT ', ' + CONVERT(VARCHAR(MAX), X.Intervall)
FROM Table2 X
WHERE B.FK_Table1_ID = X.FK_Table1_ID
FOR XML PATH(''), TYPE).value('.', 'VARCHAR(MAX)'), 1, 1, '')
FROM Table1 A
JOIN Table2 B ON A.PK_Table1_ID = B.FK_Table1_ID
GROUP BY B.FK_Table1_ID, A.name
输出:
Name2 6 168, 336, 500, 672, 840, 1000
Name3 3 168, 500, 1000
笔记:
使用 SQL Server 2012 进行测试。
作者:黑洞官方问答小能手
链接:http://www.qianduanheidong.com/blog/article/208449/bd581929ab904eed21fa/
来源:前端黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 前端黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-3
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!