我已经在 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;
所以它返回这个:
我需要编辑以 csv 导出的正常价格和折扣价格...或直接在 MySql 上导出,但我不能,因为我没有唯一的列“当前选择不包含唯一的列。网格编辑、复选框、编辑、复制和删除功能不可用。”
谁能帮我解决这个问题吗?
致以诚挚的问候。
最佳答案
我对此不是 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/