0
我有一個SELECT
查詢,LEFT JOIN
根據需要工作。然後我通過相似的LEFT JOIN
添加了一張表,現在我得到了一個更奇怪的結果。基本上,我爲每個記錄獲得一個項目的group_concat
,我得到八個記錄。我不明白爲什麼會發生這種情況,因爲到新表的連接與其他幾個沒有此問題的連接是類似的(爲了清楚起見,我已從示例中省略)。MYSQL/PHP:Concat返回到LEFT JOIN上的很多字段
這裏是一個優良的查詢:
$sql = "SELECT t.*,
group_concat(tf.todoid) as `tftodoid`,
group_concat(tf.id) as `tfid`,
group_concat(tf.filedescript) as `tffiledescript`,
group_concat(tf.filename) as `tffilename`,
group_concat(tf.founderid) as `tffounderid`,
group_concat(tf.ext) as `tfext`,
group_concat(tf.lasttouched) as `tilt`
FROM titles `t`
LEFT JOIN titlefiles `tf`
ON (tf.todoid = t.id AND tf.founderid = '$userid')
WHERE t.userid='$userid'
GROUP BY t.id";
這裏是額外的查詢加入這個現在濺出項目的多個副本:
$sql = "SELECT t.*,
group_concat(tf.todoid) as `tftodoid`,
group_concat(tf.id) as `tfid`,
group_concat(tf.filedescript) as `tffiledescript`,
group_concat(tf.filename) as `tffilename`,
group_concat(tf.founderid) as `tffounderid`,
group_concat(tf.ext) as `tfext`,
group_concat(tf.lasttouched) as `tilt`,
group_concat(s.id) as `stepid`,
group_concat(s.step) as `steps`
FROM titles `t`
LEFT JOIN titlefiles `tf`
ON (tf.titleid = t.id AND tf.founderid = '$userid')
LEFT JOIN steps `s`
ON s.titleid = t.id
WHERE t.userid='$userid'
GROUP BY t.id";
這裏是一個示例性輸出的在JSON示出差異:
第一查詢:
"tfid":"56,57,58,59,60,61,62,63,64,65,66,67,68,75,76,81"
第二個查詢:
"tfid":"56,57,58,59,60,61,62,63,64,65,66,67,68,75,76,81,56,57,58,59,60,61,62,63,64,65,66,67,68,75,76,81,56,57,58,59,60,61,62,63,64,65,66,67,68,75,76,81,56,57,58,59,60,61,62,63,64,65,66,67,68,75,76,81,56,57,58,59,60,61,62,63,64,65,66,67,68,75,76,81,56,57,58,59,60,61,62,63,64,65,66,67,68,75,76,81,56,57,58,59,60,61,62,63,64,65,66,67,68,75,76,81,56,57,58,59,60,61,62,63,64,65,66,67,68,75,76,81,56,57,58,59,60,61,62,63,64,65,66,67,68,75,76,81",
我懷疑問題有事情做與JOIN或與本集團通過報表,但我看不出如何解決。
如何確保每個文件只有一個fileid而不是八個?
這是否DISTINCT刪除受騙者中,如果你有兩個與目的相同的號碼? – user6631314
我發現它確實刪除了。這是一個很好的解決方案,除了我需要保留模糊。例如,可能有多個JPG文件擴展名。 – user6631314
它看起來像一個子查詢可能需要在這個答案https://stackoverflow.com/questions/12464037/two-sql-left-joins-produce-incorrect-result/12464135#12464135 – user6631314