将“多对多”改为“一对多”(change “many-to-many” to “one-to-many”)
我有以下表格和数据:
create table Foo ( id int not null, hid int not null, value int not null ) insert into Foo(id, hid, value) values(1,1,1) -- use this as 1 < 3 insert into Foo(id, hid, value) values(1,2,3) insert into Foo(id, hid, value) values(2,3,3) -- use this as 3 < 5 insert into Foo(id, hid, value) values(2,4,5) insert into Foo(id, hid, value) values(3,2,2) -- use this or next one as value are the same insert into Foo(id, hid, value) values(3,3,2)
目前,“id”和“hid”具有多对多的关联关系,我想要实现的是将“hid”设置为“one”而不是“many”,规则是使用最小的“value”该表,请参阅上面的sql代码中的注释。
这可能使用一些查询来实现这个而不是游标?
谢谢!
I have following table and data:
create table Foo ( id int not null, hid int not null, value int not null ) insert into Foo(id, hid, value) values(1,1,1) -- use this as 1 < 3 insert into Foo(id, hid, value) values(1,2,3) insert into Foo(id, hid, value) values(2,3,3) -- use this as 3 < 5 insert into Foo(id, hid, value) values(2,4,5) insert into Foo(id, hid, value) values(3,2,2) -- use this or next one as value are the same insert into Foo(id, hid, value) values(3,3,2)
Currently the "id" and "hid" has many-to-many association, what I want to achieve is to make the "hid" as "one" instead of "many", the rule is to use the minimum "value" in the table, see comment in above sql code.
Is this possible use some query to achieve this instead of a cursor?
Thanks!
原文:https://stackoverflow.com/questions/2024819
最满意答案
请改用sqlsrv驱动程序。 Freetds不是要走的路。 试试这个: https : //docs.microsoft.com/en-us/sql/connect/php/loading-the-php-sql-driver和https://pecl.php.net/package/sqlsrv/4.1.6.1 /视窗
$db = new PDO("dblib:host=$hostdb;dbname=$dbname", $usr, $psw);
变为:
$db = new PDO("sqlsrv:host=$hostdb;dbname=$dbname", $usr, $psw);
Use the sqlsrv driver instead. Freetds is not the way to go. Try this: https://docs.microsoft.com/en-us/sql/connect/php/loading-the-php-sql-driver and https://pecl.php.net/package/sqlsrv/4.1.6.1/windows
$db = new PDO("dblib:host=$hostdb;dbname=$dbname", $usr, $psw);
becomes:
$db = new PDO("sqlsrv:host=$hostdb;dbname=$dbname", $usr, $psw);
相关问答
更多-
与使用Windows SDK 7.1的Visual Studio 2005链接错误(Link Error With Visual Studio 2005 Using Windows SDK 7.1)[2023-07-09]
此处列出的修补程序似乎解决了链接错误。 不知道我以前错过了它。 包括在这里以防任何人使用类似的语言搜索它。 The hotfix listed here appears to address the link error. Not sure how I missed it before. Including here in case anyone ever searches for it using similar language. -
是否有可能使PhpStorm 10.0支持PHP 7.1 没有。 还是我需要升级到新版本? 是。 您至少需要2016.2.2才能支持此类语法(目前最新版本为2017.2.1)。 https://stackoverflow.com/a/45483094/783119 Is it possible to make PhpStorm 10.0 php 7.1-aware No. or do I need to upgrade to the new version? Yes. You need at very le ...
-
PHP(7.1)继承问题(PHP (7.1) inheritance issue)[2022-05-02]
看方法: // GenericRepository public function save(BaseModel $model) // IAffiliateRepository public function save(Affiliate $affiliate) : int; 两个类都必须具有相同的类型。 如果将IAffiliateRepository实现到GenericRepository类中,它将是正确的。 您可能还需要将变量名称更改为相同。 Look at methods: // GenericR ... -
PHP 7.1+ Windows readline扩展并不是所有函数都存在(PHP 7.1+ Windows readline extension not all functions exist)[2022-07-18]
最初我以为你可能会遇到一个缺乏这些功能的古老的PHP 5.0,但是如果失败了,我不得不猜测你的PHP二进制文件是针对底层库[或其版本]编译的,它不支持功能依赖于这些功能。 交叉引用ext/readline/readline.c缺少的函数列表我猜你会缺少对应于ext/readline/config.m4定义的常量/特性HAVE_RL_CALLBACK_READ_CHAR和HAVE_LIBEDIT ext/readline/config.m4 。 TL; DR:谁编译你的PHP需要弄明白。 [大概] Initi ... -
Windows上缺少PHP 7.1 x64 NTS的MongoDB库(MongoDB library missing for PHP 7.1 x64 NTS on Windows)[2023-06-15]
PHP 7.1还没有发布,因此还没有官方版本。 但是,您可以在http://windows.php.net/downloads/pecl/snaps/mongodb/1.1.9/找到针对PHP 7.1和MongoDB驱动程序1.1.9的二进制文件构建 PHP 7.1 has not been released yet, and hence there are no official builds for it yet. However, you can find binaries build for PHP ... -
请改用sqlsrv驱动程序。 Freetds不是要走的路。 试试这个: https : //docs.microsoft.com/en-us/sql/connect/php/loading-the-php-sql-driver和https://pecl.php.net/package/sqlsrv/4.1.6.1 /视窗 $db = new PDO("dblib:host=$hostdb;dbname=$dbname", $usr, $psw); 变为: $db = new PDO("sqlsrv:hos ...
-
用odbc.ini中的ClientCharset = WINDOWS-1252替换Charset = UTF-8 (然后运行odbcinst -i -s -f /usr/local/etc/odbc.ini )让我对TDS版本7.1 ClientCharset = WINDOWS-1252 。 显然,odbc.ini文件中的Charset = UTF-8对于将编码设置为UTF-8不起作用(有关更多信息,请参阅http://www.freetds.org/userguide/odbcconnattr.htm ...
-
这是我的设置脚本 #!/bin/bash mkdir -p /etc/php7 mkdir -p /etc/php7/cli git clone https://github.com/php/php-src.git -b PHP-7.0.17 --depth=1 cd php-src/ext git clone https://github.com/krakjoe/pthreads -b master pthreads cd .. ./buildconf --force ./configure - ...
-
你可以从GPC创建自己的全局变量: foreach (['_GET', '_POST', '_COOKIE'] as $source) { foreach ($$source as $key => $value) { $GLOBALS[$key] = $value; } } 免责声明:不要真的这样做。 So I came up with a temporary solution in the meantime. We utilize an include often in ...
-
您只需重新启动Apache(httpd)即可使配置更改生效。 重新启动计算机可以做到这一点,但您也可以在终端中运行: sudo apachectl restart I solved it. If you face this problem, and you sure about that you did everything right, just restart the computer.