MYSQLの関係には小さな問題があります。とき、いくつかのテーブルで関連する行に文字列が含まれているMYSQLとPHP
表1内のすべての1つの値に対して存在し、値が多数存在することができます(0+)2.
私が正しく、すべてのデータを取得することができていますが、しかし、問題が来ます表2の値は異なります。具体的には、「取り上げられた」フィールドです。
$sql = "
SELECT
accounts.name AS business,
accounts.industry AS style,
accounts_cstm.renewaldate_c AS ren_date,
accounts_cstm.nolongercontact_c AS NLC,
accounts_cstm.contactname_c AS person,
campaigns.name AS campaign,
users.first_name AS exec_fn,
users.last_name AS exec_sn,
email_addr_bean_rel.bean_id AS bean_id,
email_addresses.email_address AS email,
qs_quotationinformation.takenup AS takeup,
email_addr_bean_rel.email_address_id AS email_id
FROM
accounts
LEFT JOIN
campaigns ON accounts.campaign_id = campaigns.id
LEFT JOIN
users ON accounts.assigned_user_id = users.id
INNER JOIN
accounts_cstm ON accounts.id = accounts_cstm.id_c
LEFT JOIN
email_addr_bean_rel ON accounts.id = email_addr_bean_rel.bean_id
LEFT JOIN
email_addresses ON email_addr_bean_rel.email_address_id = email_addresses.id
LEFT JOIN
qs_quotamation_accounts_c ON accounts.id = qs_quotamation_accounts_c.qs_quot108funts_ida
LEFT JOIN
qs_quotationinformation ON qs_quotamation_accounts_c.qs_quotdb81tion_idb = qs_quotationinformation.id
WHERE
accounts.deleted = 0";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
if($row["NLC"] == 1 || $row["takeup"] == 1){$NLC = "No";}else{$NLC = "Yes";}
echo '<tr><td>'.$row['business'].'</td><td>'.$row["style"].'</td><td>'.$row["ren_date"].'</td><td>'.$NLC.'</td><td>'.$row["person"].'</td><td>'.$row["campaign"].'</td><td>'.$row["exec_fn"].' '.$row["exec_sn"].'</td><td>'.$row["email"].'</td><td>'.$row["takeup"].'</tr>';
}
} else {
echo "0 results";
}
この場合、表1は「accounts」であり、表2は「qs_quotationinformation」です。
あり、表2の複数のレコードを持っている表1のいくつかのアカウントがあり、かつ(同じアカウントに関連する)表2の「takenup」レコードの一部を1にすることができ、いくつかは0
そうです私がする必要があるのは、表2のレコードのいずれかが1ならば、$ NLCのすべての変数が= "No"になる必要があるということです。
これが可能かどうか、この情報を得る良い方法があるかどうかはわかりません。 htmlテーブルには取得されたデータがありませんが、それはテーブルがユーザーにとって最も重要なデータを視覚的に表示するにすぎないためです。
EDITテーブル(個人データを除く):
表1: +----+---------+---------+ | id | name | deleted | +----+---------+---------+ | 1 | example | 0 | +----+---------+---------+
表2: +----+---------+ | id | takenup | +----+---------+ | 1 | 0 | +----+---------+ | 2 | 1 | +----+---------+ | 3 | 0 | +----+---------+
表2の行のすべての表1の行に関連するが、そこため撮影回数= 1の行ですNLCは「いいえ」を返す必要があります(最後に関連する行が0なので現在実行しています)
ちょっとしたヒントは、できるだけ低めに接合してみてください.7はたくさんあります。 – Grumpy
サンプルデータとテーブル構造を提供することもできます – Beginner
@Grumpy残念ながら、私が処理しなければならないデータベースは、作成/使用しているプログラムのために1つのアカウントのレコードが10個以上のテーブルに分割されています – Jordan