Sql 查询与 multi-level 子查询
Sql query with multi-level subqueries
我有一个 SQL 查询以从 joomla 网站内的幼儿园存在表格中获取信息,并做一些数学运算以了解孩子们 parent 每周应该支付多少钱,然后将其加起来就知道了税单多少钱。
当我只使用一个孩子时,我得到了正确的数量,但是当我添加第二个时,两个孩子的数字就不相加了。
请求如下:
SELECT
SUM(t1.test1) AS t1,
SUM(t2.test2) AS t2
FROM
(
SELECT
(COUNT(josnh_facileforms_records.id) * sal1.salaire1) AS test1,
josnh_facileforms_subrecords.record
FROM josnh_facileforms_records,
josnh_facileforms_subrecords
LEFT JOIN
(
SELECT
LEFT(josnh_facileforms_subrecords.value, 5) AS salaire1,
josnh_facileforms_subrecords.record AS records1
FROM josnh_facileforms_records,
josnh_facileforms_subrecords
WHERE josnh_facileforms_records.user_id = [id]
AND josnh_facileforms_records.form = 24
AND josnh_facileforms_records.id = josnh_facileforms_subrecords.record
AND josnh_facileforms_subrecords.name LIKE 'enfant1'
GROUP BY
josnh_facileforms_subrecords.record
) AS sal1 ON sal1.records1 = josnh_facileforms_subrecords.record
WHERE josnh_facileforms_records.user_id = [id]
AND josnh_facileforms_records.form = 24
AND josnh_facileforms_records.id = josnh_facileforms_subrecords.record
AND josnh_facileforms_subrecords.name LIKE '%di1'
AND josnh_facileforms_subrecords.value = 'RG'
GROUP BY
josnh_facileforms_subrecords.record
) AS t1,
(
SELECT
(COUNT(josnh_facileforms_records.id) * sal2.salaire2) AS test2,
josnh_facileforms_subrecords.record
FROM josnh_facileforms_records,
josnh_facileforms_subrecords
LEFT JOIN
(
SELECT
LEFT(josnh_facileforms_subrecords.value, 5) AS salaire2,
josnh_facileforms_subrecords.record AS records2
FROM josnh_facileforms_records,
josnh_facileforms_subrecords
WHERE josnh_facileforms_records.user_id = [id]
AND josnh_facileforms_records.form = 24
AND josnh_facileforms_records.id = josnh_facileforms_subrecords.record
AND josnh_facileforms_subrecords.name LIKE 'enfant2'
GROUP BY
josnh_facileforms_subrecords.record
) AS sal2 ON sal2.records2 = josnh_facileforms_subrecords.record
WHERE josnh_facileforms_records.user_id = [id]
AND josnh_facileforms_records.form = 24
AND josnh_facileforms_records.id = josnh_facileforms_subrecords.record
AND josnh_facileforms_subrecords.name LIKE '%di2'
AND josnh_facileforms_subrecords.value = 'RG'
GROUP BY
josnh_facileforms_subrecords.record
) AS t2;
我可以再看一遍吗?
好吧,这是一个新手问题,我太专注于子查询以至于忘记了 link FROM 标签中带有左标签的子查询。
我有一个 SQL 查询以从 joomla 网站内的幼儿园存在表格中获取信息,并做一些数学运算以了解孩子们 parent 每周应该支付多少钱,然后将其加起来就知道了税单多少钱。
当我只使用一个孩子时,我得到了正确的数量,但是当我添加第二个时,两个孩子的数字就不相加了。
请求如下:
SELECT
SUM(t1.test1) AS t1,
SUM(t2.test2) AS t2
FROM
(
SELECT
(COUNT(josnh_facileforms_records.id) * sal1.salaire1) AS test1,
josnh_facileforms_subrecords.record
FROM josnh_facileforms_records,
josnh_facileforms_subrecords
LEFT JOIN
(
SELECT
LEFT(josnh_facileforms_subrecords.value, 5) AS salaire1,
josnh_facileforms_subrecords.record AS records1
FROM josnh_facileforms_records,
josnh_facileforms_subrecords
WHERE josnh_facileforms_records.user_id = [id]
AND josnh_facileforms_records.form = 24
AND josnh_facileforms_records.id = josnh_facileforms_subrecords.record
AND josnh_facileforms_subrecords.name LIKE 'enfant1'
GROUP BY
josnh_facileforms_subrecords.record
) AS sal1 ON sal1.records1 = josnh_facileforms_subrecords.record
WHERE josnh_facileforms_records.user_id = [id]
AND josnh_facileforms_records.form = 24
AND josnh_facileforms_records.id = josnh_facileforms_subrecords.record
AND josnh_facileforms_subrecords.name LIKE '%di1'
AND josnh_facileforms_subrecords.value = 'RG'
GROUP BY
josnh_facileforms_subrecords.record
) AS t1,
(
SELECT
(COUNT(josnh_facileforms_records.id) * sal2.salaire2) AS test2,
josnh_facileforms_subrecords.record
FROM josnh_facileforms_records,
josnh_facileforms_subrecords
LEFT JOIN
(
SELECT
LEFT(josnh_facileforms_subrecords.value, 5) AS salaire2,
josnh_facileforms_subrecords.record AS records2
FROM josnh_facileforms_records,
josnh_facileforms_subrecords
WHERE josnh_facileforms_records.user_id = [id]
AND josnh_facileforms_records.form = 24
AND josnh_facileforms_records.id = josnh_facileforms_subrecords.record
AND josnh_facileforms_subrecords.name LIKE 'enfant2'
GROUP BY
josnh_facileforms_subrecords.record
) AS sal2 ON sal2.records2 = josnh_facileforms_subrecords.record
WHERE josnh_facileforms_records.user_id = [id]
AND josnh_facileforms_records.form = 24
AND josnh_facileforms_records.id = josnh_facileforms_subrecords.record
AND josnh_facileforms_subrecords.name LIKE '%di2'
AND josnh_facileforms_subrecords.value = 'RG'
GROUP BY
josnh_facileforms_subrecords.record
) AS t2;
我可以再看一遍吗?
好吧,这是一个新手问题,我太专注于子查询以至于忘记了 link FROM 标签中带有左标签的子查询。