Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL•数组中联接的结果_Sql_Join - Fatal编程技术网

SQL•数组中联接的结果

SQL•数组中联接的结果,sql,join,Sql,Join,晚上好, 这是我的问题:我对我的表项目进行了一个select查询,以选择目前唯一的测试项目。我在表上做一个连接来检索与之相关的屏幕截图。只有他会得到尽可能多的结果,因为有截图!我在这儿。 我是否可以返回到更多数据名称、日期出击、描述等。关联数组URL屏幕截图? 或者你有没有办法简化我的生活?因为我看到的唯一解决方案是直接在php中处理它 我的问题是: SELECT P.nom, datesortie, description, lien, icone, tag, S.url FROM PROJE

晚上好,

这是我的问题:我对我的表项目进行了一个select查询,以选择目前唯一的测试项目。我在表上做一个连接来检索与之相关的屏幕截图。只有他会得到尽可能多的结果,因为有截图!我在这儿。 我是否可以返回到更多数据名称、日期出击、描述等。关联数组URL屏幕截图? 或者你有没有办法简化我的生活?因为我看到的唯一解决方案是直接在php中处理它

我的问题是:

SELECT P.nom, datesortie, description, lien, icone, tag, S.url
FROM PROJET P

LEFT JOIN CLIENT C
ON C.idclient = P.idclient

LEFT JOIN SCREENSHOT S
ON S.idprojet = P.idprojet

ORDER BY P.nom
这是返回的内容对不起,我的var_转储显示我在线。。。我不明白为什么:

array(7) { ["nom"]=> string(10) "BlackStars" ["datesortie"]=> string(10) "2012-07-02" ["description"]=> string(498) "Inspiré par Little Stars for Little Wars, Black Stars se veut être meilleur par bien des aspects. Prenez le contrôle d'une planète et partez à la conquête de l'univers en remportant chacune des batailles, en brisant chacune des planètes ennemies, en devenant le meilleur joueur. Car une fois le mode solo terminé, un mode multi-joueurs (Bluetooth ou Game Center) vous attend afin de vous mesurer au monde entier. Hissez-vous en haut du classement et devenez le maître incontesté de Black Stars. " ["lien"]=> string(69) "http://itunes.apple.com/us/app/black-stars/id512945753?l=fr&ls=1&mt=8" ["icone"]=> string(131) "http://a1775.phobos.apple.com/us/r30/Purple/v4/73/47/b7/7347b764-cff9-c52b-78da-42560a187acf/mza_1097997557772736292.170x170-75.png" ["tag"]=> string(10) "blackstars" ["url"]=> string(119) "http://a1352.phobos.apple.com/us/r30/Purple/v4/51/df/f5/51dff56b-08c6-59db-81df-80a174ec0050/mza_509496145749890361.png" }

===================================================
===================================================

array(7) { ["nom"]=> string(10) "BlackStars" ["datesortie"]=> string(10) "2012-07-02" ["description"]=> string(498) "Inspiré par Little Stars for Little Wars, Black Stars se veut être meilleur par bien des aspects. Prenez le contrôle d'une planète et partez à la conquête de l'univers en remportant chacune des batailles, en brisant chacune des planètes ennemies, en devenant le meilleur joueur. Car une fois le mode solo terminé, un mode multi-joueurs (Bluetooth ou Game Center) vous attend afin de vous mesurer au monde entier. Hissez-vous en haut du classement et devenez le maître incontesté de Black Stars. " ["lien"]=> string(69) "http://itunes.apple.com/us/app/black-stars/id512945753?l=fr&ls=1&mt=8" ["icone"]=> string(131) "http://a1775.phobos.apple.com/us/r30/Purple/v4/73/47/b7/7347b764-cff9-c52b-78da-42560a187acf/mza_1097997557772736292.170x170-75.png" ["tag"]=> string(10) "blackstars" ["url"]=> string(119) "http://a572.phobos.apple.com/us/r30/Purple/v4/db/1d/1d/db1d1d00-3a28-8b6f-d52f-342bf5893912/mza_3642427234916705950.png" }

===================================================
===================================================

array(7) { ["nom"]=> string(10) "BlackStars" ["datesortie"]=> string(10) "2012-07-02" ["description"]=> string(498) "Inspiré par Little Stars for Little Wars, Black Stars se veut être meilleur par bien des aspects. Prenez le contrôle d'une planète et partez à la conquête de l'univers en remportant chacune des batailles, en brisant chacune des planètes ennemies, en devenant le meilleur joueur. Car une fois le mode solo terminé, un mode multi-joueurs (Bluetooth ou Game Center) vous attend afin de vous mesurer au monde entier. Hissez-vous en haut du classement et devenez le maître incontesté de Black Stars. " ["lien"]=> string(69) "http://itunes.apple.com/us/app/black-stars/id512945753?l=fr&ls=1&mt=8" ["icone"]=> string(131) "http://a1775.phobos.apple.com/us/r30/Purple/v4/73/47/b7/7347b764-cff9-c52b-78da-42560a187acf/mza_1097997557772736292.170x170-75.png" ["tag"]=> string(10) "blackstars" ["url"]=> string(120) "http://a1701.phobos.apple.com/us/r30/Purple/v4/60/5f/ae/605fae3e-f00b-c3b7-0f65-ca73f6fd9864/mza_4565911160744621776.png" }

===================================================
===================================================

array(7) { ["nom"]=> string(10) "BlackStars" ["datesortie"]=> string(10) "2012-07-02" ["description"]=> string(498) "Inspiré par Little Stars for Little Wars, Black Stars se veut être meilleur par bien des aspects. Prenez le contrôle d'une planète et partez à la conquête de l'univers en remportant chacune des batailles, en brisant chacune des planètes ennemies, en devenant le meilleur joueur. Car une fois le mode solo terminé, un mode multi-joueurs (Bluetooth ou Game Center) vous attend afin de vous mesurer au monde entier. Hissez-vous en haut du classement et devenez le maître incontesté de Black Stars. " ["lien"]=> string(69) "http://itunes.apple.com/us/app/black-stars/id512945753?l=fr&ls=1&mt=8" ["icone"]=> string(131) "http://a1775.phobos.apple.com/us/r30/Purple/v4/73/47/b7/7347b764-cff9-c52b-78da-42560a187acf/mza_1097997557772736292.170x170-75.png" ["tag"]=> string(10) "blackstars" ["url"]=> string(119) "http://a193.phobos.apple.com/us/r30/Purple/v4/7c/ff/67/7cff67dc-d679-16ee-24cf-7f658c78b9c8/mza_8709328453215958742.png" }

===================================================
===================================================

array(7) { ["nom"]=> string(10) "BlackStars" ["datesortie"]=> string(10) "2012-07-02" ["description"]=> string(498) "Inspiré par Little Stars for Little Wars, Black Stars se veut être meilleur par bien des aspects. Prenez le contrôle d'une planète et partez à la conquête de l'univers en remportant chacune des batailles, en brisant chacune des planètes ennemies, en devenant le meilleur joueur. Car une fois le mode solo terminé, un mode multi-joueurs (Bluetooth ou Game Center) vous attend afin de vous mesurer au monde entier. Hissez-vous en haut du classement et devenez le maître incontesté de Black Stars. " ["lien"]=> string(69) "http://itunes.apple.com/us/app/black-stars/id512945753?l=fr&ls=1&mt=8" ["icone"]=> string(131) "http://a1775.phobos.apple.com/us/r30/Purple/v4/73/47/b7/7347b764-cff9-c52b-78da-42560a187acf/mza_1097997557772736292.170x170-75.png" ["tag"]=> string(10) "blackstars" ["url"]=> string(120) "http://a1443.phobos.apple.com/us/r30/Purple/v4/d7/13/8f/d7138f62-6398-7993-8d0b-23e0ce16dca2/mza_8316005873463209973.png" }

===================================================
===================================================
提前感谢您的帮助。
诚恳地说。

从我收集的信息来看,你只是不想在前6个字段中重复这些信息

通常,接受重复的信息是解决问题的方法。但是,你可以收回两套记录。只要它们排列整齐,您就可以进行嵌套循环来处理它们

SELECT P.nom, datesortie, description, lien, icone, tag, idproject
FROM PROJET P
LEFT JOIN CLIENT C
ON C.idclient = P.idclient
LEFT JOIN SCREENSHOT S
ON S.idprojet = P.idprojet
ORDER BY P.nom

SELECT P.idproject S.url
FROM PROJET P
INNER JOIN SCREENSHOT S
ON S.idprojet = P.idprojet
ORDER BY P.nom
注意:第一个查询现在还有idproject字段,它也出现在第二个记录集中。第二个记录集也按P.nom排序,即使在语句中没有选择它;这只是确保您可以执行简单的嵌套循环

一个简化的伪代码可能是

FOR EACH nom IN recordSet1
  WHILE recordSet1.idProject = recordSet2.idProject
    Do something with the URL
    Move to next record in recordSet2
  LOOP
LOOP
我不会做的事

另一种选择是将所有URL连接到一个字符串中。可能用逗号分隔以形成CSV字段

但如果url中存在逗号,则会破坏这一点。因此,您可能想使用XML或其他东西;增加了生成和解析的成本


除非重复字段的网络开销实际上导致了问题,否则我将坚持这样做。如果这导致了一个问题,那么两个记录集的替代方案更健壮,也相对简单。

您使用的是什么DBMS,MySQL?SQL Server?我想您提出了一个以前多次提出的问题,关于在SQL中将行连接到一行。我最近在许多不同的DBMS中给出了一个解决方案。但是,您指出我看到的唯一解决方案是直接在php中处理它。虽然这不是唯一的解决方案,但它可能是最好的解决方案。PHP处理数组的能力要比SQL好得多,所以为什么不把数组留给PHP,把数据存储留给数据库呢?@GarethD-注意:所有这些答案在聚合包含逗号的字符串时仍然存在同样的问题。[但这是一个非常好的答案。]@Dems我100%同意,除非在URL中使用另一个无效的分隔符,否则我链接它只是为了表明这是可能的,我不主张在这种情况下或其他许多情况下使用它。[P.s.谢谢]+1只是因为我不会做的事。SQL中的字符串连接有一定的时间和地点,我认为这不是其中之一。这些都是我想表达的情感,但我只想发表评论而不是回答。。。