Если в качестве массивов используются сложные записи, вероятно, лучше всего использовать DataFrames.jl. Поместите массивы в датафреймы, а затем соедините, затем извлеките с помощью конструктора Array.
Если вы точно знаете, какой будет логика левого соединения, вы должны вместо этого эффективно использовать понимание списка. На логическом уровне левого соединения общего назначения, однако, лучше использовать кадры данных.
julia> using DataFrames
julia> names = DataFrame(ID = [20, 40], Name = ["John Doe", "Jane Doe"])
2×2 DataFrames.DataFrame
│ Row │ ID │ Name │
├─────┼────┼──────────┤
│ 1 │ 20 │ John Doe │
│ 2 │ 40 │ Jane Doe │
julia> jobs = DataFrame(ID = [20, 40], Job = ["Lawyer", "Doctor"])
2×2 DataFrames.DataFrame
│ Row │ ID │ Job │
├─────┼────┼────────┤
│ 1 │ 20 │ Lawyer │
│ 2 │ 40 │ Doctor │
julia> arr = Array(join(names, jobs, on = :ID, kind = :left))
2×3 Array{Any,2}:
20 "John Doe" "Lawyer"
40 "Jane Doe" "Doctor"
.. или
julia> n = Array(names)
2×2 Array{Any,2}:
20 "John Doe"
40 "Jane Doe"
julia> j = Array(jobs)
2×2 Array{Any,2}:
20 "Lawyer"
40 "Doctor"
julia> [ [n[i,2], j[i,2]] for i in 1:size(n)[1] if n[i,1] == j[i,1]]
2-element Array{Array{String,1},1}:
String["John Doe", "Lawyer"]
String["Jane Doe", "Doctor"]