[英]SQL Query OR and AND
I have a query that uses OR and AND at the same time. 我有一个同时使用OR和AND的查询。 I am using PDO.
我正在使用PDO。
$conn = new PDO('mysql:host=localhost;dbname=helpinghands', 'root', '');
$table = $conn->query("SELECT
a1.nickname as lv1_1,
a2.nickname as lv1_2,
a3.nickname as lv1_3,
a4.nickname as lv1_4,
a5.nickname as lv1_5,
a6.nickname as lv1_6,
a7.nickname as lv1_7,
a8.nickname as lv1_8,
a9.nickname as lv2_1,
a10.nickname as lv2_2,
a11.nickname as lv2_3,
a12.nickname as lv2_4,
a13.nickname as lv3_1,
a14.nickname as lv3_2,
a15.nickname as lv4
FROM tables as t
LEFT JOIN accounts AS a1 ON t.l1_1=a1.sponsorID
LEFT JOIN accounts AS a2 ON t.l1_2=a2.sponsorID
LEFT JOIN accounts AS a3 ON t.l1_3=a3.sponsorID
LEFT JOIN accounts AS a4 ON t.l1_4=a4.sponsorID
LEFT JOIN accounts AS a5 ON t.l1_5=a5.sponsorID
LEFT JOIN accounts AS a6 ON t.l1_6=a6.sponsorID
LEFT JOIN accounts AS a7 ON t.l1_7=a7.sponsorID
LEFT JOIN accounts AS a8 ON t.l1_8=a8.sponsorID
LEFT JOIN accounts AS a9 ON t.l2_1=a9.sponsorID
LEFT JOIN accounts AS a10 ON t.l2_2=a10.sponsorID
LEFT JOIN accounts AS a11 ON t.l2_3=a11.sponsorID
LEFT JOIN accounts AS a12 ON t.l2_4=a12.sponsorID
LEFT JOIN accounts AS a13 ON t.l3_1=a13.sponsorID
LEFT JOIN accounts AS a14 ON t.l3_2=a14.sponsorID
LEFT JOIN accounts AS a15 ON t.l4=a15.sponsorID
WHERE
(t.l1_1 = " . $conn->quote($session->sponsorID) . " OR
t.l1_2 = " . $conn->quote($session->sponsorID) . " OR
t.l1_3 = " . $conn->quote($session->sponsorID) . " OR
t.l1_4 = " . $conn->quote($session->sponsorID) . " OR
t.l1_5 = " . $conn->quote($session->sponsorID) . " OR
t.l1_6 = " . $conn->quote($session->sponsorID) . " OR
t.l1_7 = " . $conn->quote($session->sponsorID) . " OR
t.l1_8 = " . $conn->quote($session->sponsorID) . " OR
t.l2_1 = " . $conn->quote($session->sponsorID) . " OR
t.l2_2 = " . $conn->quote($session->sponsorID) . " OR
t.l2_3 = " . $conn->quote($session->sponsorID) . " OR
t.l2_4 = " . $conn->quote($session->sponsorID) . " OR
t.l3_1 = " . $conn->quote($session->sponsorID) . " OR
t.l3_2 = " . $conn->quote($session->sponsorID) . " OR
t.l4 = " . $conn->quote($session->sponsorID) . ") AND status = '1'
");
If the AND status = '1'
is not there, it is working. 如果
AND status = '1'
不存在,则说明它正在工作。 But I need to query with the status
field so I can output only a specific field. 但是我需要使用
status
字段进行查询,因此我只能输出特定的字段。 How can I accomplish that? 我该怎么做? Thank you in advance.
先感谢您。
// try this
$conn = new PDO('mysql:host=localhost;dbname=helpinghands', 'root', '');
$table = $conn->query("SELECT
a1.nickname as lv1_1,
a2.nickname as lv1_2,
a3.nickname as lv1_3,
a4.nickname as lv1_4,
a5.nickname as lv1_5,
a6.nickname as lv1_6,
a7.nickname as lv1_7,
a8.nickname as lv1_8,
a9.nickname as lv2_1,
a10.nickname as lv2_2,
a11.nickname as lv2_3,
a12.nickname as lv2_4,
a13.nickname as lv3_1,
a14.nickname as lv3_2,
a15.nickname as lv4
FROM tables as t
LEFT JOIN accounts AS a1 ON t.l1_1=a1.sponsorID
LEFT JOIN accounts AS a2 ON t.l1_2=a2.sponsorID
LEFT JOIN accounts AS a3 ON t.l1_3=a3.sponsorID
LEFT JOIN accounts AS a4 ON t.l1_4=a4.sponsorID
LEFT JOIN accounts AS a5 ON t.l1_5=a5.sponsorID
LEFT JOIN accounts AS a6 ON t.l1_6=a6.sponsorID
LEFT JOIN accounts AS a7 ON t.l1_7=a7.sponsorID
LEFT JOIN accounts AS a8 ON t.l1_8=a8.sponsorID
LEFT JOIN accounts AS a9 ON t.l2_1=a9.sponsorID
LEFT JOIN accounts AS a10 ON t.l2_2=a10.sponsorID
LEFT JOIN accounts AS a11 ON t.l2_3=a11.sponsorID
LEFT JOIN accounts AS a12 ON t.l2_4=a12.sponsorID
LEFT JOIN accounts AS a13 ON t.l3_1=a13.sponsorID
LEFT JOIN accounts AS a14 ON t.l3_2=a14.sponsorID
LEFT JOIN accounts AS a15 ON t.l4=a15.sponsorID
WHERE
(t.l1_1 = " . $conn->quote($session->sponsorID) . " OR
t.l1_2 = " . $conn->quote($session->sponsorID) . " OR
t.l1_3 = " . $conn->quote($session->sponsorID) . " OR
t.l1_4 = " . $conn->quote($session->sponsorID) . " OR
t.l1_5 = " . $conn->quote($session->sponsorID) . " OR
t.l1_6 = " . $conn->quote($session->sponsorID) . " OR
t.l1_7 = " . $conn->quote($session->sponsorID) . " OR
t.l1_8 = " . $conn->quote($session->sponsorID) . " OR
t.l2_1 = " . $conn->quote($session->sponsorID) . " OR
t.l2_2 = " . $conn->quote($session->sponsorID) . " OR
t.l2_3 = " . $conn->quote($session->sponsorID) . " OR
t.l2_4 = " . $conn->quote($session->sponsorID) . " OR
t.l3_1 = " . $conn->quote($session->sponsorID) . " OR
t.l3_2 = " . $conn->quote($session->sponsorID) . " OR
t.l4 = " . $conn->quote($session->sponsorID) . ") AND t.status = '1'
");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.