我正在尝试使用多个连接进行查询,而我似乎无法得到它。 我有两张表custallocns和债务。 custallocns有两列transid_allocfrom amd transid_allocto,它连接表债务运算列债务运算,id,我想把结果放到一列。 下面的代码是我正在尝试的,我已经注释掉代码中的第二个连接,因为它不适用于两个连接。 我也尝试使用它们,因为别名似乎也无法得到它。 带有custallocns.transid_allocfrom的那个产生债券,它们是信用债务,而custallocns.transid_allocto产生债务运输。转移,这是我需要合并成一列的发票号码。
SELECT
`debtortrans`.`transno`,
debtortrans.type,
custallocns.datealloc,
debtortrans.id
FROM
`ts_demo`.`custallocns` `custallocns`
INNER JOIN `ts_demo`.`debtortrans` `debtortrans` ON (
`debtortrans`.`id` = `custallocns`.`transid_allocfrom`
/*INNER JOIN `ts_demo`.`debtortrans` `debtortrans` ON (
`debtortrans`.`id` = `custallocns`.`transid_allocto`
)*/
)
WHERE
debtortrans.trandate >= LAST_DAY(CURRENT_DATE) + INTERVAL 1 DAY - INTERVAL 1 MONTH
AND debtortrans.trandate < LAST_DAY(CURRENT_DATE) + INTERVAL 1 DAY
AND debtortrans.settled = '1'
AND debtortrans.type BETWEEN '10'
AND '11'
期望的结果:
transno type allocdate id
720 11 8/1/2016 12873
721 11 8/1/2016 12876
722 11 8/1/2016 12889
723 11 8/1/2016 12891
7419 10 8/1/2016 12872
7421 10 8/1/2016 12875
7427 10 8/1/2016 12882
7432 10 8/1/2016 12887
728 11 8/2/2016 12987
729 11 8/2/2016 12989
7470 10 8/2/2016 12988
7471 10 8/2/2016 12990
731 11 8/3/2016 13053
7436 10 8/3/2016 12945
7437 10 8/3/2016 12946
7438 10 8/3/2016 12947
答案 0 :(得分:0)
在第二个INNER JOIN
中,只需对表debtortrans
f.e debtortrans2
使用不同的别名,然后在WHERE
中修改条件:
SELECT
`debtortrans`.`transno`,
debtortrans.type,
custallocns.datealloc,
debtortrans.id
FROM
`ts_demo`.`custallocns` `custallocns`
INNER JOIN `ts_demo`.`debtortrans` `debtortrans` ON (
`debtortrans`.`id` = `custallocns`.`transid_allocfrom`)
INNER JOIN `ts_demo`.`debtortrans` `debtortrans2` ON (
`debtortrans`.`id` = `custallocns`.`transid_allocto`)
WHERE
debtortrans.trandate >= LAST_DAY(CURRENT_DATE) + INTERVAL 1 DAY - INTERVAL 1 MONTH
AND debtortrans.trandate < LAST_DAY(CURRENT_DATE) + INTERVAL 1 DAY
AND debtortrans.settled = '1'
AND debtortrans.type BETWEEN '10'
AND '11'
答案 1 :(得分:0)
我想要加入两个列,你需要使用适当的别名
在同一个表上进行两次内连接SELECT * FROM listings ORDER BY length(value) DESC, value DESC