4桌之间的联合

时间:2017-11-24 11:45:40

标签: mysql sql join select

这是我的4张桌子:

CREATE TABLE IF NOT EXISTS Personne (
    id serial,
    nom varchar(30),
    prenom varchar(30)
)

CREATE TABLE IF NOT EXISTS Commune (
    id serial,
    nom varchar(30),
    nbr_clients INT DEFAULT 0
)

CREATE TABLE IF NOT EXISTS Staff_admin (
    id BIGINT UNSIGNED NOT NULL,

    FOREIGN KEY (id) REFERENCES Personne(id)
)

CREATE TABLE IF NOT EXISTS Client (
    id BIGINT UNSIGNED NOT NULL,
    ref_commune BIGINT UNSIGNED NOT NULL,
    ref_staff_admin BIGINT UNSIGNED NOT NULL,

    FOREIGN KEY (id) REFERENCES Personne(id),
    FOREIGN KEY (ref_commune) REFERENCES Commune(id),
    FOREIGN KEY (ref_staff_admin) REFERENCES Staff_admin(id)
)

因此,当我选择一个客户端时,我需要:

客户名称,公社名称,Staff_admin名称。

1 个答案:

答案 0 :(得分:-1)

您不需要只有一个字段的表来映射员工管理员角色。在表格中添加您真正需要的字段(也许是客户端?)。无论如何,您需要的联接查询可能是:

puts "how may items to add in hash?"

project = {}
i=gets.chomp.to_i

for i in 1..i
  puts "add key"
  key = gets.chomp                   
  puts "add value"
  value = gets.chomp.to_f.round(2)

  project[key] = value
end

project.each do |key, value|
  puts "#{key} \t - \t #{value}%"
end

project.values.inject(&:+)