首页 \ 问答 \ 将“多对多”改为“一对多”(change “many-to-many” to “one-to-many”)

将“多对多”改为“一对多”(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
更新时间:2023-07-06 16:07

最满意答案

请改用sqlsrv驱动程序。 Freetds不是要走的路。 试试这个: https//docs.microsoft.com/en-us/sql/connect/php/loading-the-php-sql-driverhttps://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);

相关问答

更多
  • 此处列出的修补程序似乎解决了链接错误。 不知道我以前错过了它。 包括在这里以防任何人使用类似的语言搜索它。 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 ...
  • 看方法: // GenericRepository public function save(BaseModel $model) // IAffiliateRepository public function save(Affiliate $affiliate) : int; 两个类都必须具有相同的类型。 如果将IAffiliateRepository实现到GenericRepository类中,它将是正确的。 您可能还需要将变量名称更改为相同。 Look at methods: // GenericR ...
  • 最初我以为你可能会遇到一个缺乏这些功能的古老的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 ...
  • 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.

相关文章

更多

最新问答

更多
  • 您如何使用git diff文件,并将其应用于同一存储库的副本的本地分支?(How do you take a git diff file, and apply it to a local branch that is a copy of the same repository?)
  • 将长浮点值剪切为2个小数点并复制到字符数组(Cut Long Float Value to 2 decimal points and copy to Character Array)
  • OctoberCMS侧边栏不呈现(OctoberCMS Sidebar not rendering)
  • 页面加载后对象是否有资格进行垃圾回收?(Are objects eligible for garbage collection after the page loads?)
  • codeigniter中的语言不能按预期工作(language in codeigniter doesn' t work as expected)
  • 在计算机拍照在哪里进入
  • 使用cin.get()从c ++中的输入流中丢弃不需要的字符(Using cin.get() to discard unwanted characters from the input stream in c++)
  • No for循环将在for循环中运行。(No for loop will run inside for loop. Testing for primes)
  • 单页应用程序:页面重新加载(Single Page Application: page reload)
  • 在循环中选择具有相似模式的列名称(Selecting Column Name With Similar Pattern in a Loop)
  • System.StackOverflow错误(System.StackOverflow error)
  • KnockoutJS未在嵌套模板上应用beforeRemove和afterAdd(KnockoutJS not applying beforeRemove and afterAdd on nested templates)
  • 散列包括方法和/或嵌套属性(Hash include methods and/or nested attributes)
  • android - 如何避免使用Samsung RFS文件系统延迟/冻结?(android - how to avoid lag/freezes with Samsung RFS filesystem?)
  • TensorFlow:基于索引列表创建新张量(TensorFlow: Create a new tensor based on list of indices)
  • 企业安全培训的各项内容
  • 错误:RPC失败;(error: RPC failed; curl transfer closed with outstanding read data remaining)
  • C#类名中允许哪些字符?(What characters are allowed in C# class name?)
  • NumPy:将int64值存储在np.array中并使用dtype float64并将其转换回整数是否安全?(NumPy: Is it safe to store an int64 value in an np.array with dtype float64 and later convert it back to integer?)
  • 注销后如何隐藏导航portlet?(How to hide navigation portlet after logout?)
  • 将多个行和可变行移动到列(moving multiple and variable rows to columns)
  • 提交表单时忽略基础href,而不使用Javascript(ignore base href when submitting form, without using Javascript)
  • 对setOnInfoWindowClickListener的意图(Intent on setOnInfoWindowClickListener)
  • Angular $资源不会改变方法(Angular $resource doesn't change method)
  • 在Angular 5中不是一个函数(is not a function in Angular 5)
  • 如何配置Composite C1以将.m和桌面作为同一站点提供服务(How to configure Composite C1 to serve .m and desktop as the same site)
  • 不适用:悬停在悬停时:在元素之前[复制](Don't apply :hover when hovering on :before element [duplicate])
  • 常见的python rpc和cli接口(Common python rpc and cli interface)
  • Mysql DB单个字段匹配多个其他字段(Mysql DB single field matching to multiple other fields)
  • 产品页面上的Magento Up出售对齐问题(Magento Up sell alignment issue on the products page)