内部连接3个表,仅选择特定列

时间:2015-01-29 09:38:20

标签: mysql join inner-join

我无法解决这个问题,我只选择了特定列后有树表,内部联接和我,因为如果我只是离开SELECT *我就会关注性能问题完成工作

我有表:ugovori-artikliugovoriids工作SELECT *查询

SELECT * FROM `ugovori-artikli`
INNER JOIN `ugovori`
ON `ugovori-artikli`.`ugovor_id` = `ugovori`.`id`
INNER JOIN `ids`
ON `ugovori`.`kupac_id` = `ids`.`id`
AND `ugovori-artikli`.`artikal` = ?

非工作查询,我的尝试:

SELECT a.*,
b.*,
c.id, c.ime, c.prezime
FROM `ugovori-artikli` AS a
INNER JOIN `ugovori` AS b
ON `ugovori-artikli`.`ugovor_id` = `ugovori`.`id`
INNER JOIN `ids` AS c
ON `ugovori`.`kupac_id` = `ids`.`id`
AND `ugovori-artikli`.`artikal` = ?

我收到错误:

Error in query (1054): Unknown column 'ugovori-artikli.ugovor_id' in 'on clause'

2 个答案:

答案 0 :(得分:2)

使用别名

  SELECT a.*,
    b.*,
    c.id, c.ime, c.prezime
    FROM `ugovori-artikli` AS a
    INNER JOIN `ugovori` AS b
    ON a.`ugovor_id` = b.`id`
    INNER JOIN `ids` AS c
    ON b.`kupac_id` = c.`id`
    AND a.`artikal` = ?

希望这会有所帮助:)

答案 1 :(得分:0)

您必须在SQL语句中使用别名而不是表名。

SELECT a.*,b.*,c.id, c.ime, c.prezime
FROM `ugovori-artikli` AS a
INNER JOIN `ugovori` AS b ON a.`ugovor_id` = b.`id`
INNER JOIN `ids` AS c
ON b.`kupac_id` = cid`
AND a.`artikal` = ?