product
表:錯誤做一個完全外部聯接
╔══════════════════════════════════╦═══════════╦═══════════════════╦════════════════════╦════╗
║ ref ║ mfr ║ pnum ║ ssku ║ id ║
╠══════════════════════════════════╬═══════════╬═══════════════════╬════════════════════╬════╣
║ 6541_aten_2a-130g ║ Aten ║ 2A-130G ║ 2A-130G ║ 6 ║
║ 7466_eaton_5sc1000i ║ Eaton ║ 5SC1000I ║ ║ 8 ║
║ 8214_ivanti-uk_template-material ║ IVANTI UK ║ TEMPLATE MATERIAL ║ 000000000003616655 ║ 4 ║
║ 8361_aywun_92sfan1 ║ Aywun ║ 92SFAN1 ║ 92SFAN ║ 9 ║
║ 9824_autodesk_00100-000000-9880 ║ AUTODESK ║ 00100-000000-9880 ║ 00100-000000-9880 ║ 5 ║
╚══════════════════════════════════╩═══════════╩═══════════════════╩════════════════════╩════╝
inventory
表:
╔══════════════════════════════════╦═══════╦═════════╦═════════════════════╗
║ ref ║ scost ║ instock ║ date ║
╠══════════════════════════════════╬═══════╬═════════╬═════════════════════╣
║ 6541_aten_2a-130g ║ 26 ║ 0 ║ 2017-05-27 10:45:23 ║
║ 7466_eaton_5sc1000i ║ 489 ║ 0 ║ 2017-05-27 10:45:23 ║
║ 8214_ivanti-uk_template-material ║ 0 ║ 0 ║ 2017-05-27 10:45:23 ║
║ 8361_aywun_92sfan1 ║ 4 ║ 0 ║ 2017-05-27 10:45:23 ║
║ 9824_autodesk_00100-000000-9880 ║ 738 ║ 0 ║ 2017-05-27 10:45:23 ║
╚══════════════════════════════════╩═══════╩═════════╩═════════════════════╝
...,我希望從兩個表做一個FULL OUTER JOIN
(得到列只有當關鍵使用Medoo存在於兩個,如果我理解正確):
$data = $database->select("product", [
"[<>]inventory" => ["ref" => "ref"],
]);
錯誤:
Invalid argument supplied for foreach() in /var/www/html/vendor/catfan/medoo/src/Medoo.php on line
我也嘗試過這些查詢的控制檯,但得到一個語法錯誤:
SELECT *
FROM product
FULL OUTER JOIN product ON product.ref = inventory.ref;
和
SELECT * FROM `product`, * FROM `inventory`
WHERE product.`ref` = inventory.`ref`;
預期結果:
╔═══════════════════╦══════╦═════════╦═════════╦════╦═══════╦═════════╦═════════════════════╗
║ ref ║ mfr ║ pnum ║ ssku ║ id ║ scost ║ instock ║ date ║
╠═══════════════════╬══════╬═════════╬═════════╬════╬═══════╬═════════╬═════════════════════╣
║ 6541_aten_2a-130g ║ Aten ║ 2A-130G ║ 2A-130G ║ 6 ║ 26 ║ 0 ║ 2017-05-27 10:45:23 ║
╚═══════════════════╩══════╩═════════╩═════════╩════╩═══════╩═════════╩═════════════════════╝
每個'ref'小號eems在兩個表中是相同的。爲什麼你的預期結果只有一個記錄。而你的sql'加入'同一個表'產品'。 – Blank
@Forward啊,是這個問題嗎?我是MySQL的新手,所以沒有關於關係數據庫的線索。現在我明白了,列名應該是不同的我猜,這就是爲什麼它不工作。 – 3zzy
@Forward這是我的數據庫結構:https://pastebin.com/6A0E1xUM – 3zzy