php - mysql 多联表sql修改

标签 php mysql sql csv join

我已经在 5 个表上进行了连接,它看起来像这样:

   SELECT Marque.nom AS "Brand"
        , Modele.nom AS "Model"
        , Annee.nom "Year"
        , Motorisation.nom AS "Motor"
        , Fichier.prix_1 AS "Normal price"
        , Fichier.prix_2 AS "Discounted price"
   FROM   Marque
          JOIN Modele ON Modele.idMarque = Marque.id
          JOIN Annee ON Annee.idModele = Modele.id
          JOIN Motorisation ON Motorisation.idAnnee = Annee.id
          JOIN Fichier ON Fichier.idMotorisation = Motorisation.id;

所以它返回这个:

enter image description here

我需要编辑以 csv 导出的正常价格和折扣价格...或直接在 MySql 上导出,但我不能,因为我没有唯一的列“当前选择不包含唯一的列。网格编辑、复选框、编辑、复制和删除功能不可用。”

谁能帮我解决这个问题吗?

致以诚挚的问候。

Fichier 看起来像这样: enter image description here

最佳答案

我对此不是 100% 确定,但我认为如果您对其中一个 fichier 值进行分组,则可以编辑价格。

SELECT Marque.nom AS "Brand", 
       Modele.nom AS "Model", 
       Annee.nom "Year", 
       Motorisation.nom AS "Motor",
       Fichier.prix_1 AS "Normal price", 
       Fichier.prix_2 AS "Discounted price"
FROM   Marque
JOIN Modele ON Modele.idMarque = Marque.id
JOIN Annee ON Annee.idModele = Modele.id
JOIN Motorisation ON Motorisation.idAnnee = Annee.id
JOIN Fichier ON Fichier.idMotorisation = Motorisation.id
GROUP BY Fichier.idMotorisation

我认为您只能编辑文件,如果不能,恐怕您必须在 Excel 中进行

好吧,我想我有一个解决方法可以帮助您:

首先执行此查询

SELECT CONCAT_WS(',',Fichier.idMotorisation) AS ID_ARRAY
FROM   Marque
JOIN Modele ON Modele.idMarque = Marque.id
JOIN Annee ON Annee.idModele = Modele.id
JOIN Motorisation ON Motorisation.idAnnee = Annee.id
JOIN Fichier ON Fichier.idMotorisation = Motorisation.id
GROUP BY Fichier.idMotorisation

这将为您提供一个长字符串,因为所有 id 都用逗号连接起来。然后,您将将此字符串插入到以下查询中:

SELECT *
FROM Fichier
WHERE Fichier.idMotorisation IN (*Insert string here, not as string just as comma seperated values between the brackets*)

这应该会给你一个可以继续努力的结果。

编辑:

这是您在一个可编辑查询中可以获得的最佳结果:

SELECT Fichier.*
FROM   Marque
JOIN Modele ON Modele.idMarque = Marque.id
JOIN Annee ON Annee.idModele = Modele.id
JOIN Motorisation ON Motorisation.idAnnee = Annee.id
JOIN Fichier ON Fichier.idMotorisation = Motorisation.id
GROUP BY Fichier.idMotorisation

如果您现在将其他信息添加到您的选择中,它会说您由于加入而无法编辑(不是因为缺少 key ,这是我们的第一个问题)

关于php - mysql 多联表sql修改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36412440/

相关文章:

php - CodeMirror 保存自己 onBlur

php - Laravel 中间件 : Header may not contain more than a single header, 检测到新行

mysql 创建表数据目录

mysql - 'REPLACE' 附近的语法不正确

mysql - 带where子句的insert怎么写?

javascript - codeigniter 无法正确调用 jquery 中的 Controller 功能

android - MySQL/SQLite/etc 数据库之间的区别?

php - 将数据从 mySql DB 加载到 HTML 文本框中

php - 如何在SQL查询中搜索不精确的关键字

php - 如何离线使用谷歌地图从 mysql 数据库映射位置?