我想連接三個表。輸出將如下所示:在table_1上首先獲得水果價格4,並且在table_2上排除任何帶有mark 6的水果,然後在table_3上排除水果因素匹配的果實,然後獲取val的值,如果不是,我仍然保持Val值爲NULL的水果。我正在考慮加入,但不太確定如何結合三張桌子來做我想做的事情。幫助,欣賞。試圖結合三個表基於我的情況MySQL的PHP?
<?php
/*
table_1
fruit price
apple 4
banana 5
pear 4
table_2
fruit mark
apple 5
banana 4
pear 6
table_3
fruit factor val
apple 56 good
banana 89 good
pear 56 bad
*/
$sql = $wpdb->get_results($wpdb->prepare("
SELECT a.fruit, b.fruit, c.fruit, c.val
FROM table_1 a, table_2 b, table_3 c WHERE a.price = %d AND b.fruit NOT IN
(SELECT fruit FROM table_2 WHERE mark =%d) AND c.fruit = a.fruit OR c.factor = %d
",$price,$mark,%factor));
foreach($sql as $sqls){
$result1 = $sqls-> a.fruit;
$result2 = $sqls-> c.val;
$result[] = array($result1=>$result2);
}
?>
您需要了解加入... https://www.sitepoint.com/understanding-sql-joins-mysql-database/ –
首先,不需要把PHP代碼中一個片段。其次,很明顯你不熟悉JOIN。所以,如果有人回答你,下次你將無法做到。我強烈建議你瞭解JOIN,重構你的查詢,如果你還有什麼問題,請在這裏問。我們幫助你。 – Mojtaba
如果您喜歡,請考慮遵循以下簡單的兩步式操作:1.如果您尚未這樣做,請提供適當的CREATE和INSERT語句(和/或sqlfiddle),以便我們可以更輕鬆地複製問題。 2.如果您尚未這樣做,請提供與步驟1中提供的信息相對應的所需結果集。 – Strawberry