[英]MySQL Select Data from Multiple Unrelated Tables
我在我的網站上有一個頁面,我想列出客戶訂購零件或將自行車送去維修的單獨實例。 每個數據都包含在單獨的表中。 最終我將按日期對這些進行排序,並使用ORDER BY和COALESCE來完成這項工作,但首先我必須提取數據而我無法弄清楚如何做到這一點。
由於這兩個表是無關的,我不會使用JOIN來組合數據,我想我可能會使用UNION,但后來了解到聯合的數據和列數需要相似。 我看到有人在某個地方嘔吐一個逗號,但我不能讓我去上班。
這是我得到的:
$result = mysql_query("SELECT
p.part_id,
p.part_num,
p.descr,
p.vendor,
p.date_entered,
p.date_ordered,
p.date_rcvd,
s.serv_id,
s.make,
s.model,
s.yr,
s.vin,
s.mileage,
s.in_date,
s.out_date
FROM parts p, services s
WHERE cust_id = '$cust_id'");
if (mysql_num_rows($result) == 0) {
$transactions = array();
} else {
while ($row = mysql_fetch_assoc($result)) {
$transactions[] = $row;
}
}
稍后的
<? foreach ($transactions as $transaction): ?>
<? if($transaction['part_id'] && $transaction['part_id'] != "") { ?>
[DISPLAY PART INFO]
<? } elseif($transaction['serv_id'] && $transaction['serv_id'] != "" { ?>
[DISPLAY SERVICE INFO]
<? } ?>
<? endforeach; ?>
有任何想法嗎?
關於使用空列的問題? 嗯第一個表有列名,日期,碎片和第二個name_cust,date_bike_entered你可以做
Select name, date, pieces, null, null from table1
Union All
Select null, null, null, name_cust, date_bike_entered from table2
解決方案A.
您將需要兩個查詢來處理(1)部分和(2)服務的請求。 你需要一些邏輯來區分這兩者。
解決方案B.
SELECT COUNT(*) FROM parts WHERE part_id = $transaction['part_id']
SELECT COUNT(*) FROM services WHERE serv_id = $transaction['serv_id']
這將為您提供每個結果的數量。 添加邏輯以根據結果提取數據。 但是,如果兩個查詢都有結果,則需要處理邏輯。
解決方案C.
有一個只允許part_id或serv_id的無線電表單,並根據用戶的選擇進行查詢。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.